Javascript 变量在$scope中可见,但在实际访问时未定义
在Angular中,我有一个变量Javascript 变量在$scope中可见,但在实际访问时未定义,javascript,angularjs,angularjs-scope,angularjs-controller,Javascript,Angularjs,Angularjs Scope,Angularjs Controller,在Angular中,我有一个变量var1,它是在ng init中定义的(我知道这不是推荐的做法) 在我的控制器中,如果我执行console.log($scope),我可以看到变量var1及其初始化值。如果我console.log($scope.var1),我发现它是未定义的 app.controller('app', function($scope) { console.log($scope); // var1 appears here with it's initialised val
var1
,它是在ng init
中定义的(我知道这不是推荐的做法)
在我的控制器中,如果我执行console.log($scope)
,我可以看到变量var1
及其初始化值。如果我console.log($scope.var1)
,我发现它是未定义的
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
。这可能是因为您试图访问变量,甚至在它被角度赋值之前