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

发布于 2021-02-01 10:33:41

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

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

关注者
0
被浏览
102
1 个回答
  • 面试哥
    面试哥 2021-02-01
    为面试而生,有面试问题,就找面试哥。

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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看