我如何制作两个页面AngularJS共享相同的$ scope?

时间:2014-04-02 09:15:23

标签: javascript angularjs

我想在我的网站上使用angularJS。但我想在几页中使用它。

问题是当有人试图访问这些页面时,他们的行为就像两个应用程序,因为$ scope与这些应用程序不同。但我希望通过共享angularJS的相同内存空间将这些页面用作相同的应用程序。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

完全不同的页面加载是不可能的。

但毕竟$ scope意味着一些数据。您也希望为其他页面启用该数据。

您可以做的一件事是当您在页面之间切换时,您可以将数据($ scope)传输到另一个页面,并且该应用程序(页面)可以初始化该数据。然后它将作为共享相同的$范围工作。 但如果您经常在页面之间切换,这将是一个糟糕的方法。

答案 1 :(得分:1)

一般答案是否定的。但是,

接收事件的浏览器的正常流程是它执行相应的JavaScript回调。一旦回调完成,浏览器将重新呈现DOM并返回以等待更多事件。

因此,在重定向到不使用任何此范围或子范围的页面后,垃圾收集器将回收javascript对象(范围模型)。

所以,没有简单的方法可以做到这一点。除了在重定向页面时传递到新范围的参数。

但是如果你找到方法停止来自范围创建者的$ scope.destroy()调用并将该DOM链接到另一个页面的$ scope。从概念上讲这是可能的(但我不知道该怎么做)。如果你迫切希望在这种方法中使用角度,那么你可以对此进行一些研究。

否则将$ scope的$ scope参数或必填字段传递给另一个app。那就是你想要的。但正如@ Simon57所说;如果你频繁地在应用程序之间切换,它会很糟糕。

更多:http://docs.angularjs.org/guide/scope