$ scope. $ watch слишком медленный при обновлении переменной scope внутри контроллера - PullRequest
0 голосов
/ 22 марта 2020

Вот часть кода в контроллере:

$scope.$watch('date', function (newDate, oldDate) {
   ...
});
...
window.addEventListener('updateDate', updateDate);
function updateDate(date)  {
   $scope.date=date;
}

Представление шаблона пустое, поэтому нет привязок. updateDate - это пользовательское событие, отправляемое из другого приложения, которое сосуществует с AngularJS в том же объекте window. У меня проблема в том, что между выполнением $scope.date=date и обратным вызовом $ scope. $ Watch есть задержка. Однако это не тот случай, когда первый раз отправляется updateDate; без задержки! После этого первого раза я получил эту задержку.

Более того, если применить привязку в шаблоне и попытаться обновить оттуда $scope.date, все работает нормально.

Наконец, заменив $scope.date с телом обратного вызова $ scope. $ Watch, все снова работает нормально. Тем не менее, правильное решение - обновить $scope.date ...

  1. Есть ли какое-либо объяснение вышеуказанному поведению?
  2. Есть ли какое-нибудь решение?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...