AngularJS组件:$ doCheck不会使用$ q.when()运行伪造的HTTP请求

时间:2017-04-02 10:08:28

标签: javascript angularjs angularjs-controller angularjs-components angular-digest

我创建了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强制摘要,但它没有用。提前感谢您的帮助。

1 个答案:

答案 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