Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 变量在$scope中可见,但在实际访问时未定义_Javascript_Angularjs_Angularjs Scope_Angularjs Controller - Fatal编程技术网

Javascript 变量在$scope中可见,但在实际访问时未定义

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

在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 value
    console.log($scope.var1); // this is undefined
});
为什么第一个日志显示初始化的变量,而第二个日志不显示

-----编辑------

注意,如果我这样做

setTimeout(function() {
    console.log($scope.var1);
}, 0);

然后定义
var1

这可能是因为您试图访问变量,甚至在它被角度赋值之前

  • 尝试将console语句置于超时状态

  • 避免使用ng init进行初始化