у меня есть сумма, трудно запустить $ применить - PullRequest
0 голосов
/ 28 мая 2018

У меня есть список элементов, когда я нажимаю на один из них, я заполняю шаблон, затем копирую его в новый DIV, у меня появляется пустой шаблон, когда я использую $scope.$apply(), я получаю ошибку.

$scope.tache_list.forEach(element => {
  $scope.var1 = element;  
  $scope.$apply();
  $('#div2').append($("#div1").html());  
});

я получил Error $rootScope:inprog, что я могу сделать?

Error rootScope

Ответы [ 3 ]

0 голосов
/ 28 мая 2018

Оберните ваш вызов $ scope. $ Apply внутри функции $ timeout.

$timeout(function(){
   $scope.$apply()
});

Причина: цикл дайджеста будет перемещен в цикл событий и будет выполнен после завершения существующего цикла.

0 голосов
/ 30 мая 2018

я решаю эту проблему

$timeout(function(){
  $scope.$apply()
})
.then(function(){
  ...
});

спасибо за все.

0 голосов
/ 28 мая 2018

Пожалуйста, ознакомьтесь со следующей статьей о $ digest и $ apply

Ваша ошибка inprogress связана с тем, что вы звоните $apply() изнутри $apply block.Вы только хотите вызвать $ apply из outside углового кода, который начинает новый ход.Поэтому, если у вас есть setTimeout() в вашем forEach, вы можете вызвать $ apply внутри setTimeout, чтобы сообщить angular, что вы хотите его обновить.

...