使用数组

时间:2012-06-18 09:47:01

标签: javascript knockout.js

我已经开始学习淘汰赛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());

JS Fiddle

1 个答案:

答案 0 :(得分:0)

检查这个小提琴:http://jsfiddle.net/ingro/fTptZ/38/

我不知道为什么它不能在网上工作,但在我在本地制作的测试页面上没问题。

无论如何你的一些错误:

  1. 控件应该是一个observableArray:

    self.controls = ko.observableArray([{id:"T1",type:"TextInput"}, {id:"T2",type:"TextInput"}]);
    
  2. 使用“foreach”绑定时,不需要将数组作为前缀:

    Id:<span data-bind="text: id"></span>
    
  3. 你使用了旧版的Knockout,2.1.0已经用完了!

  4. 希望这有帮助!