繁体   English   中英

如何使用角度$ broadcast将数据从父级传递到子级控制器?

[英]How to pass data from parent to child controller using angular $broadcast?

我想使用angular $broadcast将id参数传递给子控制器,但是使用下面的代码,我无法实现该任务,任何想法实现错了吗?

ParentCtrl.js

 $scope.deleteXml = function(id, toast) {
     var id = $scope.diagramObj._id;
     var modalInstance = buildModal(null, 'delete');
     modalInstance.result.then(function(user) {
         //$scope.users.push(user);
     }, function() {
         //$log.info('Modal dismissed at: ' + new Date());
     });
     $rootScope.$broadcast('delete-diagram', id);
     $scope.refreshDiagrams;

 }

ChildCtrl.js

$rootScope.$on('delete-diagram', function(event, id) {
                console.log(id);
             });

您的方法是正确的。 但是,您还需要销毁$ rootScope事件。

例如

    $rootScope.$broadcast('myEvent',$scope.data);

   var customeEventListener = $rootScope.$on('myEvent', function(event, data) {

  }
  $scope.$on('$destroy', function() {
        customeEventListener();
  });

要么,

最好使用$ scope。$ on,因为$ scope上的侦听器会自动销毁,即$ scope被销毁时。

$scope.$on('myEvent', function(event, data) {}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM