[英]In angular js, How do I pass data from a parent controller to a child controller?
[英]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.