KnockoutJS:数据加载后填写div

时间:2014-01-06 12:36:18

标签: knockout.js

我是Knockoutjs的新手,我需要一些帮助来正确绑定数据。

我希望knockoutjs在AJAX调用完成后填写每个div,服务器的数据如下所示:

{
    name: 'michael',
    phone: '123456789',
    friends:
    [
        { sex: 'male', region: 'europe' },
        { sex: 'female', region: 'america' },
        { sex: 'male', region: 'asia' }
    ]
}

仅供参考,我想绑定以上数据而不使用foreach来迭代并填写上面的“朋友”。相反,出于某种原因,我想在每个div上手动绑定数据,例如)

<div data-bind: friends[0].sex>...
<div data-bind: friends[1].sex>...
<div data-bind: friends[2].sex>...

这是我的JSfiddle:http://jsfiddle.net/VAcQB/

目前有错误说:

Uncaught Error: Unable to parse bindings.
Message: TypeError: Cannot read property '0' of undefined;
Bindings value: text: data.friends[0].sex 

我认为这是因为它不理解绑定数据,因为当页面加载时数据还不可用。

有人可以帮忙解决问题吗?非常感谢你。

1 个答案:

答案 0 :(得分:0)

您应该检查data是否为空。执行此操作的最佳方法是使用绑定:

<div data-bind="with: data">
 ... Your content
</div>

这是工作小提琴:http://jsfiddle.net/VAcQB/2/