[解決済み] ko.utils.unwrapObservableはいつ使うのか?
2022-09-08 16:45:25
質問
KnockoutJSを使用して、いくつかのカスタムバインディングを書きました。どのような場合に
ko.utils.unwrapObservable(item)
コードを見てみると、この呼び出しは基本的に
item
がobservableであるかどうかをチェックします。もしそうなら、value()を返し、そうでないなら、ただ値を返します。Knockoutのカスタムバインディングの作成に関するセクションを見ると、次のような構文になっています。
var value = valueAccessor(), allBindings = allBindingsAccessor();
var valueUnwrapped = ko.utils.unwrapObservable(value);
この場合、observableを起動するために
()
を呼び出しますが、その後
ko.utils.unwrapObservable
. 私はただ、いつ一方と他方を使うべきか、あるいは常に上記のパターンに従って両方を使うべきかについて、ハンドルを握ろうとしているのです。
どのように解決するのですか?
この場合
ko.utils.unwrapObservable
は、observableが与えられたかどうか分からない場合に使うべきです。 これは一般的に、observableまたはnon-observableがそれに対してバインドされる可能性があるカスタムバインディングになるでしょう。
上のコードで
valueAccessor()
の呼び出しは、実際にはobservableをアンラップしているわけではありません。 正しいコンテキストでバインディングに渡された値を取り出しているだけです(それを保護するために関数でラップされています)。 の戻り値は
valueAccessor()
の戻り値はobservableであってもなくてもかまいません。 それはバインディングに渡されたものなら何でもです。
関連
-
[解決済み] 正規表現で変数を使うには?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] JavaScriptで二重引用符と単一引用符はいつ使うべきですか?
-
[解決済み] varキーワードの目的と、どのような場合に使用する(または省略する)べきですか?
-
[解決済み] encodeURI / encodeURIComponentの代わりにescapeを使用するのはどのような場合ですか?
-
[解決済み] ES6インポートで中括弧を使用するのはどのような場合ですか?
-
[解決済み] jQuery UI datepickerの変更イベントがKnockoutJSに捕捉されない。
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 文字列のn番目の出現箇所を取得するには?
-
[解決済み] 兄弟ノードを選択する方法はありますか?
-
[解決済み] jQueryの$という記号の意味は何ですか?
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] jqueryはjavascriptのライブラリなのかフレームワークなのか?[クローズド]
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] Promise : then vs then + catch [重複].
-
[解決済み] jQueryを使用して、すべてのクリックイベントハンドラを削除するにはどうすればよいですか?
-
[解決済み] JavaScript で css プロパティを使用して HTML 要素の背景色を設定する方法
-
[解決済み] JavaScriptでDIVを表示・非表示にするには?