当我的应用加载以设置默认状态时,我想做一些事情。因此,我试图在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方法没有调用它,所以我必须将其传递给它,但是遗憾的是它不可用。
app.run(function ($rootScope) { $rootScope.someData = {message: "hello"}; });
您只能$rootScope注入services和run功能,因为每个child scope继承自其父作用域,而顶级作用域是rootScope。因为注入 任何 范围都将是模棱两可的。仅提供根范围。
$rootScope
services
run
child scope
rootScope