Angular.js: bug(ngModel):当使用适当的`trigger` 调用时,`$setViewValue` 不会调用`$$debounceViewValue`

创建于 2016-07-08  ·  3评论  ·  资料来源: angular/angular.js

您是要请求一个 _feature_ 还是报告一个 _bug_?
漏洞。

目前的行为是什么?
如果没有ngModelOptionsngModelOptions#updateOnDefault为真,则调用NgModelController#$setViewValue(value, trigger)将调用$$debounceViewValue() _only_。
这里

如果当前行为是一个错误,请通过https://plnkr.co或类似(模板:http://plnkr.co/edit/tpl:yBpEi4)提供重现步骤和问题的最小演示(如果可能) .
演示
单击两个按钮,我希望NgModelController都得到更新。
带有{updateOn: 'blur'}那个没有 :disappointed:

什么是预期行为?
如果ngModelOptions#updateOn包含trigger调用NgModelController#$setViewValue(value, trigger)也会调用$$debounceViewValue() trigger

改变行为的动机/用例是什么?
为了让它按预期工作 :grin:

哪些版本的 Angular 以及哪些浏览器/操作系统受到此问题的影响? 还请使用最新的稳定版和快照版 (https://code.angularjs.org/snapshot/) 进行测试。
仅在 1.5.7 上尝试过,但它应该会影响许多版本。

其他信息(例如堆栈跟踪、相关问题、如何修复的建议)
不:困惑:

forms low investigation broken expected use bug

最有用的评论

顺便说一句,这是与@jeserkin讨论

所有3条评论

这显然不太对。 奇怪的是,如果您单击第二个按钮,然后单击第一个按钮,四个按钮都会更新!

如果您在按下第二个按钮后按下第一个按钮,它起作用的原因是因为单击按钮会触发摘要。 每个摘要都会执行ngModel监视操作,它将同步值(请参阅此处)。

问题是当这发生在摘要之外时。 即使在摘要内部,值也不会像第一种情况(使用updateOnDefault === true )那样同步更新。

顺便说一句,这是与@jeserkin讨论

此页面是否有帮助?
0 / 5 - 0 等级