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

时间:2014-12-01 11:44:12

标签: javascript angularjs angularjs-scope angularjs-controller

在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

1 个答案:

答案 0 :(得分:2)

可能会发生这种情况,因为即使在按角度分配值之前,您也尝试访问该变量。

  
      
  1. 尝试将控制台语句置于超时状态。

  2.   
  3. 避免使用ng-init进行初始化。

  4.