在淘汰赛中获得数组的第一个元素

时间:2015-12-08 09:39:16

标签: javascript knockout.js

我在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'   未定义

3 个答案:

答案 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].nameko.unwrap(Items)[0] 我建议第二个,因为它更安全,因为它会返回数组,即使Items不是一个可观察的数组,因此有助于避免异常。