1

我有一个封装对话框的指令,它几乎与周围的范围完全隔离:与之通信/与之通信的唯一方法是触发事件。例如,“应用”、“保存”、“删除”或“关灯”等对话框命令是通过单击按钮并触发其他作用域可能正在等待的相应事件来发出的。

由于我们不知道注册了哪些作用域来处理任何特定事件,因此我求助于从 开始一直广播对话框的命令事件$rootScope,当然它可以工作。但是,如果事件处理程序更改了模型,则视图不会更新,因为没有$apply$digest跟随事件触发。

在此处输入图像描述

这是我的困境:从哪里打电话$digest?还是我对整件事非常误解?

4

1 回答 1

1

由于$broadcast 是同步的,我建议调用 $broadcast 的代码应该在调用 $broadcast 之后调用 $rootScope.$apply(),如果该代码在“外部”AngularJS 运行。(如果该代码在 Angular “内部”运行,则不需要 $apply()。)

于 2013-08-06T00:46:36.070 回答