【问题标题】:Knockout - Access to element by index on observableArray淘汰赛 - 通过 observableArray 上的索引访问元素
【发布时间】:2015-09-23 18:52:59
【问题描述】:

我有一个带有 foreach 的视图,我需要创建一个连接两个字段的计算字段,但是这两个字段在一个可观察数组中,我知道我可以通过这种方式引用我的项目:myArray()[0] .firstName + myArray()[0].lastName 但因为我在 foreach 中,所以我需要知道索引:

假设这是我的计算域:

fullName: ko.computed(function(idx) {
     return myArray()[idx].firstName + ' ' + myArray()[idx].lastName;
})

如果我以前的代码是可能的,我如何在我的淘汰赛 foreach 中获取索引以将其发送到此计算字段并获取 fullName?

现在我有另一个问题,

employeeList: ko.observableArray(),

employeeFullName: ko.computed(function(idx) {
   return employeeList()[idx].firstName + ' ' + employeeList()[idx].lastName;
})

问题是我在页面上显示未定义employeeList 的错误。

【问题讨论】:

    标签: knockout.js knockout-2.0


    【解决方案1】:

    你的 employeeFullName 计算的 observable 需要是一个函数:

    employeeFullName: function(idx) {
         return this.employeeList()[idx].firstName + ' ' + this.employeeList()[idx].lastName;
    }
    

    如果employeeFullNameemployeeList 都在同一个视图模型中,那么您可以通过$parent 上下文访问employeeFullName。此外,您将使用$index 传递当前索引。例如,这是一个带有绑定的简单列表:

    <ul data-bind="foreach: employeeList">
        <li data-bind="html: $parent.employeeFullName($index())"></li>
    </ul>
    

    注意()$index 之后;这很重要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多