2016-11-12 14 views
0

ノックアウトを学ぼうとしています。 私の小さなプロジェクトでは、ファーストネームと姓を入力して、それを「人物」オブジェクトの配列に追加してから、foreachを使用してテーブルにリストを表示します。私もバイオリン弾きする新たなんだ、そうノックアウトは(少しのチェックボックスを非表示にし、ものを示したが、それはないはずです)のロードが、これで、私のエディタにされてないと思う、私オブジェクトを配列に追加してテーブルに表示する

https://jsfiddle.net/2pf07vdh/

エラーが発生する:

knockout-3.4.1.js:72 Uncaught ReferenceError: Unable to process binding "foreach: function(){return People }"(…) 

これは、画面が読み込まれるときです。

そして、私は私の配列にオブジェクトを追加しようとすると、その後、私はこれを取得:私はそんなに苦労してる理由

knockout-3.4.1.js:14 Uncaught TypeError: Cannot read property 'length' of undefined(…) 

誰でも見ることができますか?おそらく私はこのような 'Person'オブジェクトを宣言できないと思いますか?この行で

+0

http://stackoverflow.com/questions/23085414/knockout-unable-to-process-binding-foreach – Mahi

答えて

1

self.People = ko.observableArray([Person]); 

あなたはそれでクラス/関数への参照で観察配列を作成しています。実際の人物を作成する場合は、newキーワードを使用する必要があります。 FirstNameは未定義です。

self.People = ko.observableArray([]); // Opt 1. Initialize as empty list 
self.People = ko.observableArray([new Person()]); // Opt 2. With empty person inside 

MySelectedにも同じエラーがあります。

また、閉じられていないHTMLタグも修正する必要があります。また、SaveDeleteの方法をではなくMyViewModelに入れるようアドバイスします。

関連する問題