2013-03-28 160 views
0

没有更新的值我有以下标记:淘汰赛鉴于

<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> 

我的视图模型是这样的:

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); 

Whenver执行addname方法,警报更新名称列表排列,但 标记并不反映这些变化。那么它有什么问题?

+0

你能发布HTML? –

回答

2

Got it!您需要更改:

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

要这样:

this.nameList.push("name"); 

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

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