我有以下两个对等控制器。这些没有父项:
<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/DbBp60AgfbmGpgvwtnpU
var 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"; });