仍然在AngularJS的基础上,我了解这些概念,但是,仅查看自定义事件,

$emit




$broadcast


用于嵌套控制器

根据文档,$ emit使事件冒泡,即。将其传递给链,对于嵌套控制器,

我的问题是,这与仅从父控制器中调用一个函数(原型继承)有何不同?还是我想念什么?

最佳答案

关键是,您不能总是确定您的直系父母是您想打电话的人。使用这种反模式很容易破坏您的代码。

您必须同意

$scope.$parent.$parent.$parent.doSomething();


真丑。

相反,您可以向上$emit一个事件,现在,只要父控制器正在侦听和做出反应,它就没有关系了。

这为您提供了控制器之间的良好松散耦合,并且就像消息泵一样。

$broadcast同样如此,只是向下,而在这里我认为它甚至更为重要。

关于javascript - $ emit,$ broadcast,原型(prototype)继承,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29386906/

10-10 17:06
查看更多