如何在同一模块中的控制器之间传递?

时间:2016-06-26 07:21:53

标签: angularjs

在名为EventDetails的模块中,我有两个控制器attachedFilesListEventDetailsctrl

我需要将字符串值从EventDetailsctrl控制器传递给attachedFilesList控制器。

如何在同一模块中的控制器之间传递?

2 个答案:

答案 0 :(得分:2)

解决方案如下:

在EventDetailsctrl

$rootScope.$broadcast('pass-value', 'dummyVal');

在attachedFilesList

$scope.$on('pass-value', function(event, value) {
  // value is the object which is passed from $broadcast
});

答案 1 :(得分:1)

您还可以使用service将数据从一个控制器传递到另一个控制器。

EventDetails
  .controller('attachedFilesList', ['$rootScope', '$scope', 'myservice',
     function($rootScope, $scope, myservice) {
         $scope.myservice = myservice;
     }
  ]);

EventDetails
  .controller('EventDetailsctrl', ['$rootScope', '$scope', 'myservice',
     function($rootScope, $scope, myservice) {
         $scope.myservice = myservice;
     }
  ]);

EventDetails
   .service('myservice', function() {
       this.name = "value";
   });

以下是Plnkr

希望有所帮助:)