Angularjs 从另一个不带rootScope的控制器更改已加载控制器中的作用域值
我需要从控制器-1更新控制器-2(已加载)的一个$scope值。我不想使用$rootScopeAngularjs 从另一个不带rootScope的控制器更改已加载控制器中的作用域值,angularjs,Angularjs,我需要从控制器-1更新控制器-2(已加载)的一个$scope值。我不想使用$rootScope 我可以使用广播或发射进行同样的操作吗 如果控制器处于子-父关系中,则可以使用: $emit(如果controller1是controller2的子级) $broadcast(如果controller2是controller1的子级) 如果他们不在此关系中,则您需要: 从控制器1发出 在最近的父级中捕获事件(可能是应用程序) 从此父级广播新事件 在controller2中捕获事件 当然。。。这并不总
我可以使用广播或发射进行同样的操作吗 如果控制器处于子-父关系中,则可以使用:
- $emit(如果controller1是controller2的子级)
- $broadcast(如果controller2是controller1的子级)
如果愿意,您可以使用其他通信方式(例如使用公共服务)。在rootscope上使用brodcast,在scope上使用listen 最佳实践是为您想要收听或广播的每个自定义事件创建一个服务
.service("hiEventService",function($rootScope,$scope) {
this.broadcast = function() {$rootScope.$broadcast("hi")}
this.listen = function(callback) {$scope.$on("hi",callback)}
})您可以使用$localStorage更改该值。或者创建一个服务来获取并设置该值。谢谢Ovidiu。在这种情况下,emit为我工作。我也会尝试服务方式