[解決済み】ko.applyBindingsを呼び出して部分ビューをバインドすることはできますか?
2022-04-16 23:42:14
質問
KnockoutJSを使用しており、メインビューとビューモデルを持っています。私はダイアログ(jQuery UIのもの)を、別の子ビューモデルがバインドされている別のビューでポップアップするようにしたいのです。
ダイアログの内容のHTMLはAJAXを使って取得されるので、そのために
ko.applyBindings
そして、ダイアログ div 内の ajax を介して読み込まれた HTML の部分だけに子ビューモデルをバインドしたいのです。
これは実際に可能なのか、それともページが最初にロードされたときにすべてのビューとビューモデルをロードし、それから
ko.applyBindings
一度だけですか?
解決方法は?
ko.applyBindings
は、ルートとして使用する DOM 要素を第 2 パラメータとして受け取ります。
これによって、次のようなことができるようになる。
<div id="one">
<input data-bind="value: name" />
</div>
<div id="two">
<input data-bind="value: name" />
</div>
<script type="text/javascript">
var viewModelA = {
name: ko.observable("Bob")
};
var viewModelB = {
name: ko.observable("Ted")
};
ko.applyBindings(viewModelA, document.getElementById("one"));
ko.applyBindings(viewModelB, document.getElementById("two"));
</script>
つまり、このテクニックを使って、ダイアログに読み込む動的コンテンツに viewModel をバインドすることができるのです。 全体として、このテクニックで気をつけたいことは
applyBindings
同じ要素に何度もアクセスすると、複数のイベントハンドラが付加されるからです。
関連
-
[解決済み】Google Maps APIがAJAX使用時のみ「Uncaught ReferenceError: google is not defined」を投げる。
-
[解決済み] RichFacesのa4j:ajaxタグのevent属性の取りうる値のリスト
-
AJAXクロスドメイン問題(3つの解決策)
-
PDOException "could not find driver" (ドライバが見つかりません)
-
[解決済み] データをリクエストペイロードではなく、フォームデータとして投稿するにはどうすればよいですか?
-
[解決済み] ajaxポストからのファイルダウンロードを処理する
-
[解決済み】プリフライトCORSリクエストの導入の動機は何ですか?
-
[解決済み】ko.applyBindingsを呼び出して部分ビューをバインドすることはできますか?
-
[解決済み】WebSocketが使えるのに、なぜAJAXを使うのか?
-
[解決済み] どのようにすれば、observableから自動的にトリガーされることなく、ビューの更新を強制することができますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] RichFacesのa4j:ajaxタグのevent属性の取りうる値のリスト
-
AjaxにおけるbeforeSend関数の使用について
-
ajax+jsonを使用します。
-
[解決済み] データをリクエストペイロードではなく、フォームデータとして投稿するにはどうすればよいですか?
-
[解決済み] CORSです。資格情報フラグが true の場合、Access-Control-Allow-Origin でワイルドカードを使用できない。
-
[解決済み】一部のAJAXコールで "net::ERR_BLOCKED_BY_CLIENT "エラーが発生する。
-
[解決済み】KnockOutJS - 複数のViewModelsを1つのViewで使用する場合
-
[解決済み] HTTPリクエストがステータスコード0を返すのはどういう意味ですか?
-
[解決済み] WebサーバーからブラウザにデータをPUSHする方法はありますか?
-
[解決済み] Google インスタントはどのように機能するのですか?