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

Variable visible in $scope but undefined when actually accessed in Angular

本文关键字:Angular 访问 未定义 但在 scope 变量      更新时间:2023-09-26

在 Angular 中,我有一个在ng-init中定义的变量var1(我知道这不是推荐的做法)。

从我的控制器中,如果我执行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

这可能是因为

您甚至在通过 angular 为其赋值之前就尝试访问该变量。

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

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