我想做一些东西,当我的应用程序加载设置默认状态。所以我试图在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)) );
我会这样做错了吗?
例如,我想在开始时运行一次watchAction函数,以隐藏尚未调用的UI元素,但watchAction函数没有$ scope对象,因为它没有被watch方法调用,所以我不得不通过它,但唉,它不可用。
app.run(function ($rootScope) { $rootScope.someData = {message: "hello"}; });
您只能将$ rootScope注入到服务和运行函数,因为每个子作用域都从其父作用域继承,顶层作用域是rootScope。因为注入任何范围是不明智的。仅提供根范围。