如何将一些数据从一个控制器传递到另一个对等控制器
我有以下两个对等控制器。这些没有父项:
<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',
['$rootScope', '$scope',
function ($rootScope, $scope) {
}]);
在控制器1中,我想更新由Controller2控制的HTML中的变量xxx的值。有办法吗?
-
绝对使用服务在控制器之间共享数据,这是一个有效的示例。$
broadcast不是要走的路,您应该避免在有更合适的方式时使用事件系统。使用“服务”,“值”或“常量”(用于全局常量)。http://plnkr.co/edit/ETWU7d0O8Kaz6qpFP5Hp
这是带有输入的示例,因此您可以在页面上看到数据镜像:http :
//plnkr.co/edit/DbBp60AgfbmGpgvwtnpUvar testModule = angular.module('testmodule', []); testModule .controller('QuestionsStatusController1', ['$rootScope', '$scope', 'myservice', function ($rootScope, $scope, myservice) { $scope.myservice = myservice; }]); testModule .controller('QuestionsStatusController2', ['$rootScope', '$scope', 'myservice', function ($rootScope, $scope, myservice) { $scope.myservice = myservice; }]); testModule .service('myservice', function() { this.xxx = "yyy"; });