我有一个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。
答案 0 :(得分:1)
您的employeeFullName
计算的observable需要是一个函数:
employeeFullName: function(idx) {
return this.employeeList()[idx].firstName + ' ' + this.employeeList()[idx].lastName;
}
如果employeeFullName
和employeeList
都在同一个视图模型中,那么您可以通过employeeFullName
上下文访问$parent
。此外,您将使用$index
传递当前索引。例如,这是一个带有绑定的简单列表:
<ul data-bind="foreach: employeeList">
<li data-bind="html: $parent.employeeFullName($index())"></li>
</ul>
注意()
之后的$index
;这很重要。