小编典典

如何将一些数据从一个控制器传递到另一个对等控制器

angularjs

我有以下两个对等控制器。这些没有父项:

<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的值。有办法吗?


阅读 431

收藏
2020-07-04

共1个答案

小编典典

绝对使用服务在控制器之间共享数据,这是一个有效的示例。$
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";
    });
2020-07-04