Wish you a happy day~(❁´◡`❁)

Angular框架Controller嵌套时使用Broadcast需要注意的问题

[ 进击的程序媛 ] zoey 586次浏览 1个评论

最近做项目遇到了一个问题,原理挺简单,记下来备忘。简单来说就是这样:

一个页面上有一个scope:1然后通过事件触发ng-include一个子模板(子controller):1-2

需要在childController中接收父scope发送的广播事件进行处理。然后我就发现广播事件第一次总是接收不到,还以为是有延迟的原因,其实就是因为parentController在发出广播之后,子childController的scope还未创建成功,因此on事件就不会触发。为此我写了一个demo试验:

  • 在主页面,分别引入childOne 和childTwo,childOne是先引入模板,再发送广播,childTwo是同时做,观察结果:

  • childOne、childTwo(省略)模板。都是一样的:

  • 三个控制器:

  • 结果如图所示,childtwo本应点击第一次按钮就应该出现result,但是并没有,因为此时的scope未初始化成功。在开发中遇到此类问题需谨慎处理。

buggif


喜欢 (0)or分享 (0)