在Angular中,我有一个变量var1
,它在ng-init
中定义(我知道这不是推荐的做法)。
从我的控制器,如果我console.log($scope)
,我可以看到变量var1
及其初始化值。如果我console.log($scope.var1)
,我发现它是undefined
app.controller('app', function($scope) {
console.log($scope); // var1 appears here with it's initialised value
console.log($scope.var1); // this is undefined
});
为什么第一个日志可能显示初始化变量但第二个日志不显示?
-----编辑------
请注意我是否
setTimeout(function() {
console.log($scope.var1);
}, 0);
然后定义了var1
。
答案 0 :(得分:2)
可能会发生这种情况,因为即使在按角度分配值之前,您也尝试访问该变量。
尝试将控制台语句置于超时状态。
- 醇>
避免使用ng-init进行初始化。