0

レンダリングしたくないテンプレートの一部があるため、ドキュメントが提案するように「controlsDescendantBindings」を試しました。

モデルに「親」と「子」の 2 つのプロパティが含まれる例を作成しました。親を表示する必要がありますが、子をレンダリングしてはなりません。

KO Programmatic pluginを使用しています。

通常のバインディングできちんと動作します: http://jsfiddle.net/vtortola/QXJVb/

テンプレートを使用すると機能します: http://jsfiddle.net/vtortola/uKLnm/3/

また、プログラムで KO を使用すると機能しません: http://jsfiddle.net/vtortola/XGApK/

誰かがこれに対する回避策を知っていますか?

ありがとう。

4

1 に答える 1

0

2つのこと。

  1. ノックアウト 2.0 と jQuery tmpl を使用していました。これらは一緒にうまく機能しません。Knockout には 2.0 以降、独自のテンプレート エンジンが組み込まれています。jQuery tmpl は非推奨であり、作成者による開発も行われていないと思います。使用しないでください。
  2. あなたの 2 番目のフィドルは を呼び出しませんでしko.applyBindingsた。これは必要な手順です。あなたがその電話を受けたので、あなたの最初のものはうまくいきました。

これがあなたの fiddleで、テンプレートとストップバインディングを操作しています。これはjQueryメソッドを使用したフィドルです


Knockout は、特定の div へのバインドを制限するための独自の方法を提供します。KO Programmatic はちょっと…不要に見えます。ドキュメントページのスニペットは次のとおりです。

必要に応じて、2 番目のパラメーターを渡して、データ バインド属性を検索するドキュメントの部分を定義できます。たとえば、ko.applyBindings(myViewModel, document.getElementById('someElementId')) です。これにより、アクティブ化が ID someElementId とその子孫を持つ要素に制限されます。これは、複数のビュー モデルを持ち、それぞれをページの異なる領域に関連付ける場合に役立ちます。

アップデート:

約束どおり、これらのフィドルが説明どおりに機能するスクリーンショット。

通常の方法: jsフィドル

jQuery/KO プログラムによる方法: ここに画像の説明を入力

于 2012-07-18T16:16:46.160 に答える