淘汰未更新视图中的值

时间:2013-03-28 18:51:31

标签: javascript html5 mvvm knockout.js

我有以下标记:

<ul data-bind="foreach: nameList">
    <li data-bind="text: $data"></li>
</ul>
<button data-bind="click: addname">add name</button>
Total names: <span data-bind="text: nameList().length"></span>

我的viewmodel看起来像这样:

var viewmodel = {
    nameList: ko.observableArray(["Brian"]),
    number: ko.observable(100),
    addname: function(){
        alert(this.nameList().length);
        this.nameList().push("name");
        alert(this.nameList().length);
    }
};

ko.applyBindings(viewmodel);

当执行addname方法时,alert会更新nameList数组,但是 标记不反映这些变化。那有什么不对呢?

1 个答案:

答案 0 :(得分:2)

知道了!你需要改变:

this.nameList().push("name");

对此:

this.nameList.push("name");

(因为nameList是一个数组,而不是一个方法)

演示:http://jsfiddle.net/G464V/

相关问题