我创建了Simple Angular textarea component with characters counter, made with $doCheck component hook on Plunker,它会对$doCheck挂钩上的字符进行计数。我读到了it should run for every digest cycle,所以它应该有效:
$ctrl.load = function () {
HTTPService
.get()
.then(_bindElement);
}
function _bindElement (element) {
$ctrl.element = element;
}
至少导致digets运行 - 组件内的值更改,它也显示在父<p>
上。但是计数器没有改变,我错过了什么,$doCheck
在每个摘要周期运行都不是真的吗?我使用$q.when()
来模拟HTTP请求 - 我也尝试$timeout
强制摘要,但它没有用。提前感谢您的帮助。
答案 0 :(得分:0)
我找到了一个解决方案,当字符数更改时,我必须用timeout
手动调用$doCheck
,因为它看起来像digest
内的分配不会触发Country City
---------------------
Afghanistan Kabul
Afghanistan Kandahar
Australia Canberra
Australia Sydney
Belgium Antwerp
Belgium Bruges
Belgium Brussels
,并且这就是为什么视图与模型不同步的原因。工作插件:https://plnkr.co/edit/M6I5sB?p=info。