在AngularJS中将一个控制器的范围传递给另一个控制器

时间:2016-01-25 05:34:08

标签: angularjs

当我点击$PUBLIC_IP控制器中的按钮时。 myCtrl的{​​{1}}也应该使用当前控制器的ng-model进行更改:

myCtrl2

3 个答案:

答案 0 :(得分:3)

有几种方法可以解决这个问题。其中一个是使用$ emit事件。你可以深入挖掘here.

但为了快速参考,我提供了Plunkr here。请检查一下。

var app = angular.module('plunker', []);

app.controller('myCtrl', function($rootScope, $scope) {
   $scope.name="before";
   $scope.just = function(){
      $scope.name="after";
      $rootScope.$emit('update');
   }
   }).controller('myCtrl2', function($rootScope, $scope){
      $rootScope.$on('update', function(){
      $scope.name2 = "after";
   })
});

答案 1 :(得分:0)

您需要制作一个服务,然后将其注入控制器。

https://docs.angularjs.org/guide/services

答案 2 :(得分:0)

您可以为此使用$ rootScope:

var app = angular.module('plunker', []);
app.controller('myCtrl', function($rootScope, $scope) {
   $scope.name="before";
   $scope.just = function(){
      $scope.name="after";
      $rootScope.nameInRootScope=$scope.name;
   }
   }).controller('myCtrl2', function($rootScope, $scope){
      $scope.name2 = $rootScope.nameInRootScope;
   })
});