-3

ノックアウト 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フィドル

4

1 に答える 1

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 がリリースされました。

これが役立つことを願っています!

于 2012-06-18T10:24:00.533 に答える