Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使两个页面AngularJ共享相同的$scope?_Javascript_Angularjs - Fatal编程技术网

Javascript 如何使两个页面AngularJ共享相同的$scope?

Javascript 如何使两个页面AngularJ共享相同的$scope?,javascript,angularjs,Javascript,Angularjs,我想在我的网站上使用angularJS。但我想在几页中使用它 问题是,当有人试图访问这些页面时,它们的行为就像两个应用程序一样,因为$scope与这些应用程序不同。但我想通过共享angularJS的相同内存空间,将这些页面用作同一个应用程序 我该怎么做呢?完全不同的页面加载是不可能的 但毕竟$scope意味着一些数据。您还希望为其他页面启用该数据 您可以做的一件事是,当您在页面之间切换时,您可以将数据($scope)传输到另一个页面,并且该应用程序(页面)可以初始化该数据。然后它将像共享相同的$

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

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


我该怎么做呢?

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

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

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

一般答案是否定的。但是

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

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

所以,没有简单的方法可以做到这一点。页面重定向时传递到新作用域的参数除外

但是如果您找到方法停止scope creator的$scope.destroy()调用,并将该DOM链接到另一个页面的$scope。从概念上讲,这是可能的(但我不知道怎么做)。如果你不顾一切地想在这种方法中使用angular,那么你可以做一些研究

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


更多信息:

它们是完全不同的页面(整页加载)吗?如果不使用任何存储(localStorage),就不可能实现,因为当您在页面之间导航时,浏览器会重新创建javascript对象(javascript对象不能在页面加载之间共享)。如果您不介意切换,有一个名为的库,它可以做您想要的事情,跳到视频中的2:00。