0
votes

I created Simple Angular textarea component with characters counter, made with $doCheck component hook on Plunker, which counts characters on $doCheck hook. I read that it should run for every digest cycle, so it should work:

$ctrl.load = function () {
    HTTPService
      .get()
      .then(_bindElement);
  }
function _bindElement (element) {
    $ctrl.element = element;
  }

Cause at least digets runs - value changes inside component, it is also displayed on parent's <p>. But counter does not change, am I missing something, this is not true that $doCheck runs on every digest cycle? I use $q.when() for simulation of HTTP request - I also tried $timeout to force digest, but it didn't work. Thank you in advance for every help.

1
It's not clear how the behaviour differs from real http request. From what I see here, it's absolutely same thing. - Estus Flask

1 Answers

0
votes

I found a solution, I have to manually call digest with timeout when character count changes, cause it looks like assignments inside $doCheck to not trigger digest, and that's why view was out of sync with model. Working plunk: https://plnkr.co/edit/M6I5sB?p=info.