更新角度js函数内的值

时间:2016-03-29 07:00:14

标签: javascript angularjs

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,而不是更新的sum。如何获取vm.a的更新值?当我执行$ scope。$ apply时,我得到一个错误" $ digest已在进行中"。

2 个答案:

答案 0 :(得分:2)

您在致电$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);
    }
}

答案 1 :(得分:0)

你无法在完成更改功能之前调用$ log,否则它将仅返回0。