foreach
与其他语言中使用的中继器类似。此绑定将允许你为数组中的每个项复制一个 html 块。
<div data-bind="foreach:contacts">
<div class="contact">
<h2 data-bind="text:name">
<p data-bind="text:info">
</div>
</div>
<script type="text/javascript">
var contactViewModel = function (data) {
this.name = ko.observable(data.name);
this.info = ko.observable(data.info);
};
ko.applyBindings({
contacts: [
new contactViewModel({name:'Erik', info:'Erik@gmail.com'}),
new contactViewModel({name:'Audrey', info:'Audrey@gmail.com'})
]
});
</script>
请注意,当我们循环遍历上下文时,将成为数组中的项,在本例中为 contactViewModel
的实例。在 foreach
中我们也可以访问
$parent
- 创建此绑定的视图模型$root
- 根视图模型(也可以是父模型)$data
- 数组索引处的数据$index
- 渲染项的(可观察的)从零开始的索引