大部分时间我在淘汰赛中为'undefined'属性收到一些错误。我在stackoverflow answer找到了同样的解决方案。它对于简单绑定很有效,但我的问题是我如何使用这种技术进行'foreach'绑定,就像我试过的那样
以下代码无效
<table>
<tbody data-bind="foreach: model.mappings">
<tr>
<td>
<select data-bind="options:mappings.variableList, optionsText:'Key',optionsValue:'Value', value:mappings.selectedVariable>
</select>
</td></tr></tbody></table>
但是下面的代码正在运作
<table>
<tbody data-bind="foreach:mappings">
<tr>
<td>
<select data-bind="options:variableList, optionsText:'Key',optionsValue:'Value', value:selectedVariable>
</select>
</td></tr></tbody></table>
两者的Js相同:
var list = //some array
var arr =// [{variableList : list}];
var model={
mappings:ko.observableArray(arr)
}
ko.applyBindings......
答案 0 :(得分:0)
想象一下你的“模特”是一个功能。在html中绑定时,您只能访问模型的局部变量。模型本身不可见,因为这超出了您的范围。映射是模型中的变量,这就是为什么只需编写foreach: mappings
即可访问它。 model
不是模型的一部分,它是模型......希望这有帮助。
此外,当您编写foreach: mappings
时,您可以进入foreach循环,这就是为什么您不写mappings.PropertyName
而只是写PropertyName
编辑:我对您帖子的评论完全错误,所以我将其删除了