AngularJS Обновление DOM - PullRequest
       1

AngularJS Обновление DOM

0 голосов
/ 11 сентября 2018

Может ли кто-нибудь объяснить мне, как заставить DOM "обновлять" свои значения в AngularJS? Вот пример того, чего я пытаюсь достичь.

Кнопка начинает отключаться, и через 3 секунды я хочу, чтобы она была включена. Мой код правильно включил переменные, но ng-disabled не обновляет. Как я могу это исправить?

Я прочитал о $ apply, но многие говорят, что это сложно понять и опасно использовать. Я сам не могу подать заявление на работу (я не пойму)

Вы можете задать мне другие вопросы, поскольку я уверен, что в этой проблеме нет ничего нового.

  <button ng-disabled="!Check1 || !Check2">Disabled</button>
  ...
  $scope.Check1 = false;
  $scope.Check2 = true;
  setTimeout(() => {
    $scope.Check1 = true;
    alert('Check1 now true');
  }, 3000);

http://plnkr.co/edit/O7j89xoS8rHCTz1Fn2pG?p=preview

* ПРИМЕЧАНИЕ. Не направляйте меня к $ timeout. Тайм-аут здесь является лишь примером отложенного ответа, который может быть любым.

1 Ответ

0 голосов
/ 11 сентября 2018

Это довольно легко, я вижу сейчас.Просто оберните изменение значения в $scope.$apply, как показано ниже:

  <button ng-disabled="!Check1 || !Check2">Disabled</button>
  ...
  $scope.Check1 = false;
  $scope.Check2 = true;
  setTimeout(() => {
    $scope.$apply(function () {
      $scope.Check1 = true;
      alert('Check1 now true');
    });
  }, 3000);

Эта статья действительно помогла в решении этой проблемы: http://jimhoskins.com/2012/12/17/angularjs-and-apply.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...