Angular.js: bug(ngModel):適切な `trigger`で呼び出された場合、` $ setViewValue`は `$$ debounceViewValue`を呼び出さない

作成日 2016年07月08日  ·  3コメント  ·  ソース: angular/angular.js

_feature_をリクエストしますか、それとも_bug_を報告しますか?
バグ。

現在の動作は何ですか?
NgModelController#$setViewValue(value, trigger)を呼び出すと、 ngModelOptionsがない場合、またはngModelOptions#updateOnDefaultが真の場合、 $$debounceViewValue() _ only_が呼び出されます。
こちらをご覧ください

現在の動作がバグである場合は、再現する手順を提供し、可能であればhttps://plnkr.coまたは同様の方法で問題の最小限のデモを提供して
デモ
両方のボタンをクリックすると、両方のNgModelControllerが更新されると思います。
{updateOn: 'blur'}ものは:がっかりしません:

期待される動作は何ですか?
ngModelOptions#updateOntrigger含まれている場合、 NgModelController#$setViewValue(value, trigger)を呼び出すと$$debounceViewValue()も呼び出されます。

行動を変える動機/ユースケースは何ですか?
期待どおりに機能させるには:grin:

この問題の影響を受けるAngularのバージョンとブラウザ/ OSはどれですか? また、最新の安定版とスナップショット(https://code.angularjs.org/snapshot/)バージョンでテストしてください。
1.5.7でのみ試しましたが、多くのバージョンに影響するはずです。

その他の情報(例:スタックトレース、関連する問題、修正方法の提案)
いいえ:混乱:

forms low investigation broken expected use bug

最も参考になるコメント

ところで、これはgitterに関する@jeserkinとの話し合いのそれを突き刺すことに興味を示しました。 (恥知らずに)彼のためにそれを保存する:stuck_out_tongue:

全てのコメント3件

それは間違いなく正しくないようです。 奇妙なことに、2番目のボタンをクリックしてから最初のボタンをクリックすると、4つすべてが更新されます。

2番目のボタンを押した後に最初のボタンを押した場合に機能する理由は、ボタンのクリックによってトリガーされるダイジェストのためです。 ダイジェストごとに実行されるngModelウォッチアクションがあり、値を同期します(ここを参照)。

問題は、これがダイジェストの外部で発生する場合です。 また、ダイジェスト内からでも、最初のケース( updateOnDefault === true )のように値が同期的に更新されることはありません。

ところで、これはgitterに関する@jeserkinとの話し合いのそれを突き刺すことに興味を示しました。 (恥知らずに)彼のためにそれを保存する:stuck_out_tongue:

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