Файл controller.js указывается как
function XYZController($rootScope,$scope){
var vm = this;
vm.a = 0;
var change = function(data){
data.forEach(function(e,i){
vm.a+=Number(e.value);
});
}
$log.log(vm.a);
}
Вызывается изменение функции, но $ log.log(a) печатает 0 вместо обновленной суммы. Как принять обновленное значение vm.a? Когда я применяю $ scope. $ Apply, я получаю сообщение об ошибке "$ дайджест уже идет ".
Вы вызываете $log.log(vm.a);
перед вызовом change()
, поэтому он регистрирует ваш vm.a = 0;
, если вы измените свой код на это, он должен работать.
function XYZController($rootScope,$scope){
var vm = this;
vm.a = 0;
var change = function(data){
data.forEach(function(e,i){
vm.a+=Number(e.value);
});
$log.log(vm.a);
}
}
Вы не можете вызывать $ log до завершения вашей функции изменения, иначе она вернет вас только 0.
change
? Пожалуйста, оставьте все соответствующие коды.