我有两个AngularJS控制器,其中控制器1在视图中始终可见,控制器2可以从视图更改为视图。我需要确保控制器1可以访问某些范围变量。因此,在加载时,如果我将控制器2的整个范围传递给控制器1,是否会损害页面的性能?
答案 0 :(得分:1)
可以在控制器之间共享范围,但只能通过继承。我很确定你不能将一个示波器“发送”到另一个控制器并完全替换它。
我建议在控制器之间广播带有数据的事件,或者将它们存储在AngularJS服务(factory
)中。由于这些是单例,只要您不重新启动应用程序,数据就会保持不变。
编辑:关于性能,即使增益非常小,我建议使用服务来存储数据。这样它就像一个简单的DTO,并且不必是双重绑定(如果你不需要它),这意味着$digest
周期更快一点。
此致