AngularJs:从事件触发应用范围更改

时间:2013-08-05 23:20:25

标签: angularjs angularjs-directive angularjs-scope

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

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

enter image description here

这就是我的困境:从哪里拨打$digest?或者我对整件事情都非常误导?

1 个答案:

答案 0 :(得分:1)

$broadcast is synchronous以来,我建议调用$ broadcast的代码在调用$ broadcast后调用$ rootScope。$ apply(),如果该代码在“AngularJS外部”运行。 (如果该代码在“Angular”内部运行,则不需要$ apply()。)