一尘不染

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

angularjs

当我的应用加载以设置默认状态时,我想做一些事情。因此,我试图在Module对象上使用run方法。当我尝试访问$ scope变量时,虽然在控制台中收到“
Uncaught ReferenceError:$ scope not defined”消息,但该消息仍然存在。

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

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

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

app.run(
    alert($scope.data.myvariable))
);

我要把这都弄错了吗?

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


阅读 326

收藏
2020-07-04

共1个答案

一尘不染

app.run(function ($rootScope) {
    $rootScope.someData = {message: "hello"};
});

您只能$rootScope注入servicesrun功能,因为每个child scope继承自其父作用域,而顶级作用域是rootScope。因为注入 任何 范围都将是模棱两可的。仅提供根范围。

2020-07-04