[解決済み] knockout.js - DOM要素からViewModelを取得する
2023-07-23 21:59:03
質問
与えられた DOM 要素からバインドされた ViewModel JavaScript オブジェクトを取得することは可能でしょうか?
ko.applyBindings( gLoginViewModel, document.getElementById("login-form") );
ko.applyBindings( gLoginViewModel, document.getElementById("register-form") );
そして、どこか他の場所 - どちらかというと関係のないコード - に、次のようなものがあります。
var viewModel = ko.getViewModel( formElement );
viewModel.someObservable( someData ); // observable available in all ViewModels
のようなことができれば、さらに良いのですが。
var viewModel = ko.getViewModel( someChildElement );
どのように解決するのですか?
Knockoutには2つの ユーティリティメソッド があり、これが役に立つかもしれません。
-
ko.dataFor
は、その要素がバインドされているViewModelを返します。 -
ko.contextFor
は、現在の要素の "バインディングコンテキスト" を返します。このメソッドから戻ってくるオブジェクトは、次のようなものを返します。{ $data: ..., $parents, $root }
ということで、もし私があなたの質問を理解するならば、おそらくあなたは
ko.dataFor
ここで
以下は簡単な例です。
を使って
dataFor
.
関連
-
[解決済み] 要素外でのクリックを検出するにはどうすればよいですか?
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] jQueryで要素にスクロールする
-
[解決済み] jQueryを使ってドロップダウンリスト(セレクトボックス)から選択されたテキストを取得する
-
[解決済み] どのDOM要素にフォーカスがあるかを調べるには?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] JavaScriptで:hoverのCSSプロパティを変更する
-
[解決済み] Reactコンポーネントでthis.setStateを複数回使用するとどうなりますか?
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] AJAX Mailchimp サインアップフォームの統合
-
[解決済み] ECMAScriptとは?
-
[解決済み] Node.jsのES6クラスをrequireで作る
-
[解決済み] Fetch: ステータスがOKでない場合、プロミスを拒否し、エラーをキャッチするか?