假设我有一个带有输出绑定的父子组件:
<parent>
<child (doStuffChild)="doStuff()"></child>
</parent>
用户点击会导致doStuffChild.emit()
。
doStuff()
方法首先被调用,然后从根进行更改检测? doStuff()
的调用是否也发生在点击开始的Zone.run()
内? zone.onTurnDone()
事件?我很高兴澄清我的问题,如果它太混乱了。
答案 0 :(得分:2)
是
doStuff()
在Angulars根区域内运行,无需额外Zone.run()
发生更改检测是因为Angular了解@Output()
以及何时发出事件
onChanges
将不会被调用,因为没有更改@Input()
。在ngDoCheck()
被调用
doStuff()
醇>