AngularJS在控制器之间传递作用域

AngularJS Passing scope between controllers Performance

本文关键字:作用域 之间 控制器 AngularJS      更新时间:2023-09-26

我有两个AngularJS控制器,其中控制器1在视图中始终可见,控制器2可以从视图更改到视图。我需要确保控制器1可以访问一些作用域变量。加载时如果将控制器2的整个作用域传递给控制器1会影响页面的性能吗?

在控制器之间共享作用域是可能的,但只能通过继承。我很确定你不能"发送"一个作用域到另一个控制器并完全替换它。

我建议在控制器之间广播带有数据的事件,或者将它们存储在AngularJS服务(factory)中。因为这些都是单例,所以只要你不重启应用程序,数据就会保持完整。

编辑:在性能方面,即使增益非常小,我建议使用服务来存储数据。这样,它就像一个简单的DTO,而不必是双重绑定(如果你不需要它),这意味着$digest周期要快一点。