我在knockoutjs中填充了一系列对象
我想避免使用foreach,所以我尝试data-bind
第一项
如果我使用以下代码,它可以正常工作
<div class="loader" data-bind="foreach: Items" >
<span data-bind="text: name"></span>
</div>
但如果我使用,下面的那个,它不工作
<div class="loader">
<span data-bind="text: Items[0].name"></span>
</div>
第二种方式的错误是什么?
我得到的错误是
未捕获的TypeError:无法处理绑定“text:function (){return Items [0] .name}“消息:无法读取属性'name' 未定义
答案 0 :(得分:2)
你需要unwrap
observableArray Items
使用()
符号来阅读它的内容。
试试这个
<div class="loader">
<span data-bind="text: Items()[0].name"></span>
</div>
答案 1 :(得分:1)
text: Items()[0].name
检查一下。
答案 2 :(得分:1)
使用Items()[0].name
或ko.unwrap(Items)[0]
我建议第二个,因为它更安全,因为它会返回数组,即使Items不是一个可观察的数组,因此有助于避免异常。