ここでは、バインド可能なプロパティvalue
をカスタム要素内で内部的に変更しても、valueChanged
が呼び出されます。そのバインド可能な値に対してvalueChanged
をトリガーすることなく、カスタム要素からviewModelに更新された値を戻す方法を教えてください。トリガなしのカスタム要素の双方向バインディングの更新valueChange
これを抑える方法はありますか?内部コードから呼び出されたりビューから来ている場合は、内部トラッキングを使用する必要がありますか?
ここでは、バインド可能なプロパティvalue
をカスタム要素内で内部的に変更しても、valueChanged
が呼び出されます。そのバインド可能な値に対してvalueChanged
をトリガーすることなく、カスタム要素からviewModelに更新された値を戻す方法を教えてください。トリガなしのカスタム要素の双方向バインディングの更新valueChange
これを抑える方法はありますか?内部コードから呼び出されたりビューから来ている場合は、内部トラッキングを使用する必要がありますか?
カスタム要素のコードがプロパティを割り当てるかどうか、または外部コードまたはユーザーの入力に応じて割り当てられるかどうかに基づいて、バインド可能なプロパティの変更ハンドラメソッドが呼び出されないようにする方法はありません。独自の内部トラッキングメカニズムをロールバックする必要があります。
Jeremyによると、バインド可能なプロパティの変更ハンドラが呼び出されないようにする方法はありません。ただし、change.delegate
またはkeyup.delegate
プロパティを使用してフォーム入力のみでコードをアタッチまたはトリガーすることはできます。そうすれば、バインディングプロパティーから生じる変更からイベントコードを分離することができます。
カスタム要素の値が変更された場合、あなたはまだビューモデル変数を更新しますか:
ここではこれを実証するGistRunですか? – nicovank
私はこの少しをクリアさせてください。私はviewModelから来る値に関係なく、viewModelを更新したいと思います。この場合、オーバーレイのバイナリ値です。 viewModelがtrueに変わった場合、私はオーバーレイを表示します。オーバーレイからクローズボタンをクリックすると、オーバーレイを閉じるだけでなく、viewModelの値をfalseに更新する必要があります。次にトグルします( 'toggle =!toggle ')それはまだオーバーレイを開くでしょう、さもなければdoublwトグルが必要です。オーバーレイの閉じるボタンは、valueChangedの別のcloseイベントをトリガします –