使用ng init初始化后访问module.run中的$rootScope属性



所以我通过以下方式设置rootScope变量:

<body ng-app="App" ng-init="$root.number=10">

然后我想在module.run方法中访问$rootScope.number,但我没有定义。我该怎么办?

在执行.run()时,Angular尚未解析应用程序
您可以使用$timeout在所有内容呈现后立即访问该属性,到那时Angular:将完全解析DOM

<body ng-app="App" ng-init="number=42">
angular.module('App', [])
.run(function ($rootScope, $timeout) {
    $timeout(function () {
        alert($rootScope.number);
    });
});

最新更新