我有这样的viewmodel,
function viewModel() {
this.Items = ['A', 'B', 'C'];
}
ko.applyBindings(new viewModel());
我想打印出这样的东西,
<div data-bind="foreach: {data: Items, as: 'item1' }">
<span data-bind="text: item1"></span>
<div data-bind="foreach: {data: Items, as: 'item2' }">
<span data-bind="text: item2"></span>
</div>
</div>
上面没有用,我得到一个错误,说明项目没有定义(在我第二次尝试使用它的行)。
所以,我想我会尝试这个,
function viewModel() {
this.Items1 = ['A', 'B', 'C'];
this.Items2 = ['A', 'B', 'C'];
}
ko.applyBindings(new viewModel());
<div data-bind="foreach: {data: Items1, as: 'item1' }">
<span data-bind="text: item1"></span>
<div data-bind="foreach: {data: Items2, as: 'item2' }">
<span data-bind="text: item2"></span>
</div>
</div>
我收到语法错误。我做错了什么?
感谢。
答案 0 :(得分:1)
您需要更改内循环的上下文: (例子是基于你的原意)
<div data-bind="foreach: {data: Items, as: 'item1' }">
<span data-bind="text: item1"></span>
<div data-bind="foreach: {data: $parent.Items, as: 'item2' }">
<span data-bind="text: item2"></span>
</div>
</div>
答案 1 :(得分:0)
如果您要完成的只是吐出数组中的每个值,只需将您的标记更改为:
<div data-bind="foreach: {data: Items, as: 'item1' }">
<span data-bind="text: item1"></span>
</div>
这是jsFiddle:http://jsfiddle.net/dymAQ/1/