繁体   English   中英

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

[英]How can I make two pages AngularJS share the same $scope?

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

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

我怎样才能做到这一点?

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

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

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

一般答案是否定的。 但,

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

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

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

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

否则将$ scope参数或$ scope的必填字段传递给另一个应用程序。 那就做你想要的。 但正如@ Simon57所说; 如果你经常在应用程序之间切换,这将是一个糟糕的方法。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM