我在scope
中需要rootScope
值,因此我可以在应用中使用它,所以我就像
var app = angular.module('myApp', []);
app.run(function($rootScope) {
$rootScope.car= 'honda';
});
app.controller('myCtrl', function($scope) {
$scope.car= "suzuki";
});
我正在我的索引文件中访问{{car}}
并且它给了我本田,这很好。
我需要的是$scope.car
$rootScope.car
中$scope.car
的相同值才能访问全局,因为我无法访问$ scope.car值。
我想要相同值的原因是在rootscope
中,我将获得我的服务值,该值是在长代码之后动态来自json解析并且进入$rootScope
,再次写服务不是良好的做法。
任何其他方式,在同一个控制器功能中,我可以$scope
就像我可以使用全局的markedDates= {{
[this.state.markedData]: {selected: true, marked: true},
}}
一样?
还是其他任何选择?
感谢。
答案 0 :(得分:0)
在您的控制器中,您可以使用$ rootScope,因为每个应用程序都有一个根作用域。您不必在控制器中安装$ scope.car,也可以在控制器中使用$ rootscope.car。
答案 1 :(得分:0)
您可以从子控制器广播事件
$rootScope.$emit('eventname',obj)
,在父控制器中,您可以使用
$rootScope.$on('eventname',function(event,data){
console.log(data)
})
通过这种方式,您可以将子控制器中的变量访问到最顶层的根目录,其中eventname是您要广播的任何事件