我已经开始学习淘汰赛API了。我写了一小段代码,这很简单,但它不起作用。请帮帮我
<h4>People(<span data-bind="text: controls().length"> </span>)</h4>
<ul data-bind="foreach:controls">
<li>
Id: <span data-bind="text: controls.id"></span>
</li>
</ul>
<button data-bind="click:$root.addControls">Add</button>
var Form = function(){
this.controls = [{id:"T1",type:"TextInput"},
{id:"T2",type:"TextInput"}];
this.addControls = function(){
this.controls.push({id:"",type:""})
};
}
var Controls = function(id,type){
this.id = id;
this.type = type;
}
ko.applyBindings(new Form());
答案 0 :(得分:0)
检查这个小提琴:http://jsfiddle.net/ingro/fTptZ/38/
我不知道为什么它不能在网上工作,但在我在本地制作的测试页面上没问题。
无论如何你的一些错误:
控件应该是一个observableArray:
self.controls = ko.observableArray([{id:"T1",type:"TextInput"}, {id:"T2",type:"TextInput"}]);
使用“foreach”绑定时,不需要将数组作为前缀:
Id:<span data-bind="text: id"></span>
你使用了旧版的Knockout,2.1.0已经用完了!
希望这有帮助!