cor*_*ore 14 javascript angularjs
这是如何在作为范围兄弟姐妹的两个组件之间正确通信的吗?

是的,这是我在Angular中兄弟范围之间进行通信的方式.通常我认为Ctrl1向其所有后代范围发出'up',并且'on'在监听事件的父范围内,父范围向所有子范围广播'down'.在这种情况下,一旦听到事件,Ctrl2应该在'on'上设置一些东西来做某事.
作为旁注,我已经做了类似的事情,我将rootScope用作集中式事件总线,在那里它监听不同的子范围事件,然后再执行一些任务或广播.然后,子范围将负责简单地发出rootScope.
嗯 - $emit在与父控制器进行通信时,技术上并不需要,孩子可以访问.但是$broadcast在与子范围进行通信时确实需要:
app.controller("parentCtrl", function($scope) {
$scope.testMe = function() {
$scope.$broadcast("done"); //transmit to ctrl2
}
});
app.controller("childCtrl1", function($scope) {
$scope.testMe(); //call parent
});
app.controller("childCtrl2", function($scope) {
$scope.$on("done", function() {
alert("Caught parent event");
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5240 次 |
| 最近记录: |