Knockout.js 在foreach中组合$parent和$index
我有一个视图模型,它有两个数组。我想迭代一个数组并访问另一个数组上相同索引处的值,但似乎不能将Knockout.js 在foreach中组合$parent和$index,knockout.js,Knockout.js,我有一个视图模型,它有两个数组。我想迭代一个数组并访问另一个数组上相同索引处的值,但似乎不能将$parent与$index一起使用。见: 功能视图模型(因素、模型){ this.name=“父视图模型”; 本系数=可观察到的系数; this.models=ko.observatarray(模型); } 函数子视图模型(名称、数组){ this.anotherArray=ko.observearray(数组); this.name=名称; } ko.applyBindings(新视图模型)( [“
$parent
与$index
一起使用。见:
功能视图模型(因素、模型){
this.name=“父视图模型”;
本系数=可观察到的系数;
this.models=ko.observatarray(模型);
}
函数子视图模型(名称、数组){
this.anotherArray=ko.observearray(数组);
this.name=名称;
}
ko.applyBindings(新视图模型)(
[“系数1”、“系数2”],
[新的子视图模型(“模型1”,“foo”,“bar”),
新的子视图模型(“模型2”,“一”,“二])
]));
如果将$parent.factors()[$index]
更改为$parent.factors()[0]
,它将显示factors
数组中的正确条目。如果将其替换为$index
,则可以获得正确的索引。但是,如果将它们组合在一起,那么knockout似乎无法在已经有$parent
的表达式中解析$index
还有人看到这个吗
我知道我可以将我的数组组合成一个视图模型的单个数组来组合属性,但我有理由不这样做。这是更复杂的视图模型的一部分。
$index
本身就是一个可观察的对象
从:
这是正在呈现的当前数组项的从零开始的索引
通过foreach绑定与其他绑定上下文属性不同,
$index是可观察的…
因此,如果在表达式中使用它,则需要编写$index()
:
<div data-bind="text: $parent.factors()[$index()]"></div>
演示
<div data-bind="text: $parent.factors()[$index()]"></div>