参见英文答案 >
AngularJS: How can I pass variables between controllers?15个答案我有以下两个对等控制器。这些没有父母:
<div data-ng-controller="Controller1"> </div> <div data-ng-controller="Controller2"> The value of xxx is: {{ xxx }} </div> angular.module('test') .controller('QuestionsStatusController1',['$rootScope','$scope' function ($rootScope,$scope) { // How can I set the value of xxx in the HTML that's part of Controller2 }]); angular.module('test') .controller('QuestionsStatusController2','$scope',function ($rootScope,$scope) { }]);
在控制器1中,我想更新由Controller2控制的HTML中的变量xxx的值。有没有办法可以做到这一点?
绝对使用服务在控制器之间共享数据,这是一个工作示例。
$ broadcast不是要走的路,你应该避免在有更合适的方式时使用事件系统。使用’service’,’value’或’constant'(对于全局常量)。
$ broadcast不是要走的路,你应该避免在有更合适的方式时使用事件系统。使用’service’,’value’或’constant'(对于全局常量)。
http://plnkr.co/edit/ETWU7d0O8Kaz6qpFP5Hp
以下是输入示例,您可以在页面上看到数据镜像:
http://plnkr.co/edit/DbBp60AgfbmGpgvwtnpU
var testModule = angular.module('testmodule',[]); testModule .controller('QuestionsStatusController1','myservice',$scope,myservice) { $scope.myservice = myservice; }]); testModule .controller('QuestionsStatusController2',myservice) { $scope.myservice = myservice; }]); testModule .service('myservice',function() { this.xxx = "yyy"; });