【问题标题】:KnockoutJS foreach data-bind to function?KnockoutJS foreach 数据绑定功能?
【发布时间】:2012-08-17 08:05:30
【问题描述】:

如何从 KnockoutJS foreach 中的函数绑定数据?

例如 我有以下代码:

 <div data-bind="foreach: timeEntries">
     <a href="#page1" data-icon="refresh" data-theme="c">
         <span data-bind="text: getActivityName(ActivityId)"></span>
     </a>

我想调用模型上下文中存在的函数 getActivityName,并传递 ActivityId,它是 foreach 迭代的 timeEntry 上的一个属性。

只是绑定这个

data-bind="text: ActivityId"

将正确显示每一行的活动 ID,但我需要进行查找并从字典中获取名称。 我确实知道上面的代码很可能在当前项目而不是上下文上调用 getactivityname,那么我该如何解决呢?

【问题讨论】:

    标签: knockout.js


    【解决方案1】:

    foreach 绑定创建一个新的绑定上下文(它允许您直接绑定到循环中项目的属性。 如果你想从视图模型而不是循环中引用一个属性,你可以使用 $root 或 $parent 绑定。​​

    <span data-bind="text: $root.getActivityName(ActivityId)"></span>
    

    getActivityName 函数可以为您进行查找。

    另一种选择是使在 foreach 中迭代的对象成为可观察对象,并创建一个计算的可观察对象来为您进行查找。

    【讨论】:

      猜你喜欢
      • 2014-12-31
      • 2012-10-15
      • 1970-01-01
      • 1970-01-01
      • 2013-12-22
      • 2016-01-13
      • 1970-01-01
      • 2017-12-17
      • 1970-01-01
      相关资源
      最近更新 更多