Knockout的foreach不会遍历数组

时间:2013-11-27 17:58:36

标签: knockout.js pager

我将开始展示我的HTML和View模型:

HTML:

<div data-bind="with: chosenDevice">
    <div class="page-header">
        <h3 data-bind="text: name"></h3>
    </div>

    <p>
        <span data-bind="text: attrs().length"></span>
    </p>

    <ul data-bind="foreach: attrs()">
        <li data-bind="text: name"></li>
    </ul>
</div>

HTML绑定到chosenDevice DeviceViewModel对象。

查看型号:

function DeviceViewModel(device) {
    var self = this;
    self.name = ko.observable(device.name);
    self.attrs = ko.observableArray([{name: "test1"}, {name: "test2"}, {name: "test3"}]);
}

可以打印名称text: name,也可以打印text: attrs的{​​{1}}。[object Object],[object Object],[object Object]。当我将对象记录到控制台时,所有数据都存在。

但是当我尝试使用foreach: attrs()时,没有任何反应? (我想要一份test1, test2, test3的清单。

我简化了示例以便于理解,我当然可以发布完整版本。

提前致谢!

1 个答案:

答案 0 :(得分:0)

看起来您的问题是您正在将绑定应用于viewModel,因此Knockout无法找到chosenDevice绑定中引用的with:

通过将绑定应用于viewModel.devices,我对您的代码进行了一些here。如果没有pager依赖关系,我认为没有足够的信息来制作一个可用的演示,但是我的更改后我没有收到任何JavaScript错误。