2

最初に applyBindings() を使用して、モデルをドキュメントに適用します。

ko.applyBindings(appViewModel);

次に、いくつかの動的コンテンツを追加します。

$('#contentSection').append(myAccountTmpl);

次に、applyBindings を使用してモデルを新しいコンテンツに適用します。getElementById を使用して動的に追加されたノードを参照すると、ドキュメントのバインディングが破損します。JQuery スタイルの参照を使用する場合、問題はありません。

  ko.applyBindings(appViewModel,document.getElementById('#myAccountForm'));  //corrupts other bindings
  ko.applyBindings(appViewModel,$('#myAccountForm')[0]);  //No Problems!

誰かがこの動作の説明を提案できる場合は、いただければ幸いです。私はこれらのテクノロジーに不慣れで、手がかりがありません。特定のバインディングがコンテンツを表示できないことを除いて、「破損」が何を意味するのかを実際に説明することさえできません(データがまだバインドされたモデルプロパティにあることを確認しました)。

また、これは、バインディングに不可解な「破損」がある他の誰かを助けるかもしれません。

4

1 に答える 1

1

使用する場合はdocument.getElementById、ハッシュを前に付けないでください。ハッシュ付きのフォームはセレクター構文です。getElementByIdID名を期待するので、あなたのバージョンではnullを返します。正しい形式は次のとおりです。

ko.applyBindings(appViewModel,document.getElementById('myAccountForm'));
于 2013-02-07T20:11:31.243 に答える