Vue: ブラウザに応じてクリックイベントの前後にデータを更新するVue

作成日 2016年06月22日  ·  3コメント  ·  ソース: vuejs/vue

Vue.jsバージョン

v1.0.20

複製リンク

http://jsfiddle.net/5sH6A/468/

再現する手順

Chrome / Firefoxは一方向に動作しますが、IE 11 / Edgeは別の方法で動作します。

Chrome / Firefox-チェックボックスをクリックしてfalseからtrueの状態に変更した場合、vueはクリックイベントの前にrow.selected値をtrueに更新しません。

IE 11 / Edge-チェックボックスをクリックしてfalseからtrueの状態に変更すると、vueはクリックイベントの前にrow.selected値をtrueに更新します。

同じことが真の状態から偽の状態になります

最も参考になるコメント

変更ハンドラーのロジックをVue.nextTickラップすることにより、この問題を解決しました。 次に、常に更新された値にアクセスします。
別の解決策は、プロパティのウォッチャーである可能性があります。

全てのコメント3件

ブラウザーが異なれば、 changeイベントとclickイベントが異なる順序でトリガーされます。これは、Vueが変更できるものではなく、Vueがこの動作を正規化する責任もありません。 clickではなくchangeイベントをリッスンする必要があります。

変更ハンドラーのロジックをVue.nextTickラップすることにより、この問題を解決しました。 次に、常に更新された値にアクセスします。
別の解決策は、プロパティのウォッチャーである可能性があります。

受け入れられる答えはエヴァンのものでなければなりません。 それはすべての場合に機能します。

このページは役に立ちましたか?
0 / 5 - 0 評価