无法使用Knockout.js中的observableArray长度更新span

时间:2014-07-08 09:09:31

标签: javascript jquery html knockout.js observable

我是KO的新手,我有一个我无法解决的问题。

我不明白在我尝试的这个特定部分中可观察的理论。我有一个跨度应始终使用observableArray(self.links)的值自行更新,该值由用户通过表单填充。

每当我推送到数组时,我认为它应该自动更新范围,但它没有,我不明白为什么,这是我的主要问题,而不是理解为什么。

我知道如果不是

<div class="panel-heading"><span data-bind="text: numberOfLinks">

我有......

<div class="panel-heading"><span data-bind="text: links().length">

跨度会自动更新,但问题是,我如何将该链接()。长度值实际放入变量中,以便可以在其他地方使用(这可能不会发生,但我很好奇)。< / p>

我这里有js,所以更容易:http://jsfiddle.net/Kc4vL/2/

1 个答案:

答案 0 :(得分:0)

您可以直接使用link()。length来显示链接数: -

<span data-bind="text: links().length"></span> available links</div>

或者你必须使用computed来获得observableArray的长度。还有一种没有计算的方法,每次添加新链接时都可以更新numberOfLinks。

    self.addLink = function(){

        self.links.push(new Link(self.linkToAdd()));
        self.numberOfLinks(self.links().length);
    };

Fiddle Demo