在Angular的run()方法中获取$ scope对象

Tri*_*tan 35 angularjs

当我的应用加载设置默认状态时,我想做一些事情.所以我试图在Module对象上使用run方法.当我尝试访问$ scope变量时,虽然我在控制台中收到"未捕获的ReferenceError:$ scope未定义"消息.

请参阅以下示例http://jsfiddle.net/F2Z2X/1/

app = angular.module('myapp', []);

app.controller('mycontroller', function($scope){
    $scope.data = { myvariable: 'Hello' };
});

app.run(
    alert($scope.data.myvariable))
);
Run Code Online (Sandbox Code Playgroud)

我错了吗?

例如,我想在开始时运行一次watchAction函数,以隐藏尚未调用的UI元素,但是watchAction函数没有$ scope对象,因为它没有被watch方法调用所以我必须把它传递给它,但唉它不可用.

Umu*_*acı 77

app.run(function ($rootScope) {
    $rootScope.someData = {message: "hello"};
});
Run Code Online (Sandbox Code Playgroud)

您只能$rootScope注入servicesrun运行,因为每个child scope都是从其父作用域继承而且是顶级作用域rootScope.因为注入任何范围都是不明智的.仅提供根范围.