2017-01-17 24 views
2

ここでは、バインド可能なプロパティvalueをカスタム要素内で内部的に変更しても、valueChangedが呼び出されます。そのバインド可能な値に対してvalueChangedをトリガーすることなく、カスタム要素からviewModelに更新された値を戻す方法を教えてください。トリガなしのカスタム要素の双方向バインディングの更新valueChange

これを抑える方法はありますか?内部コードから呼び出されたりビューから来ている場合は、内部トラッキングを使用する必要がありますか?

+0

カスタム要素の値が変更された場合、あなたはまだビューモデル変数を更新しますか:

ここではこれを実証するGistRunですか? – nicovank

+0

私はこの少しをクリアさせてください。私はviewModelから来る値に関係なく、viewModelを更新したいと思います。この場合、オーバーレイのバイナリ値です。 viewModelがtrueに変わった場合、私はオーバーレイを表示します。オーバーレイからクローズボタンをクリックすると、オーバーレイを閉じるだけでなく、viewModelの値をfalseに更新する必要があります。次にトグルします( 'toggle =!toggle ')それはまだオーバーレイを開くでしょう、さもなければdoublwトグルが必要です。オーバーレイの閉じるボタンは、valueChangedの別のcloseイベントをトリガします –

答えて

1

カスタム要素のコードがプロパティを割り当てるかどうか、または外部コードまたはユーザーの入力に応じて割り当てられるかどうかに基づいて、バインド可能なプロパティの変更ハンドラメソッドが呼び出されないようにする方法はありません。独自の内部トラッキングメカニズムをロールバックする必要があります。

0

Jeremyによると、バインド可能なプロパティの変更ハンドラが呼び出されないようにする方法はありません。ただし、change.delegateまたはkeyup.delegateプロパティを使用してフォーム入力のみでコードをアタッチまたはトリガーすることはできます。そうすれば、バインディングプロパティーから生じる変更からイベントコードを分離することができます。

https://gist.run/?id=11cd1e90dd912f07a60afaedb9c2613b

関連する問題