Javascript 如何判断Angularjs页面是通过刷新加载的还是通过链接导航到的?

Javascript 如何判断Angularjs页面是通过刷新加载的还是通过链接导航到的?,javascript,ajax,angularjs,Javascript,Ajax,Angularjs,在Angularjs中,页面通过对模板的ajax调用加载,浏览器从不重新加载其全部内容(单个应用程序)。但是,您可以直接链接到页面本身,Angularjs会计算出需要加载哪些内容 我如何判断页面是否直接链接到(可能来自刷新)或是否动态加载(例如,在使用location.path('/somepath');)时) 我试着查了一下文件,但什么也没找到。我可以设置一个本地存储变量,但这似乎有些过分 页面从未真正刷新自己。所有文件都预加载到浏览器中,然后唯一刷新的就是内容。 手动刷新页面时,再次加载角度

在Angularjs中,页面通过对模板的ajax调用加载,浏览器从不重新加载其全部内容(单个应用程序)。但是,您可以直接链接到页面本身,Angularjs会计算出需要加载哪些内容

我如何判断页面是否直接链接到(可能来自刷新)或是否动态加载(例如,在使用
location.path('/somepath');
)时)


我试着查了一下文件,但什么也没找到。我可以设置一个本地存储变量,但这似乎有些过分

页面从未真正刷新自己。所有文件都预加载到浏览器中,然后唯一刷新的就是内容。
手动刷新页面时,再次加载角度,因为这是您第一次打开页面

你可以在任何角度代码之前知道它。您可以查看
窗口。location
对象并检查URL。例如,只需在
angular.module('myModule',[…])
行之前执行

var url = window.location.href;

if (url.contains('/somepath')) {
    console.log('do something !');
}

angular.module('myModule', [...])
// Angular code goes on ...

我相信你在试图解决错误的问题。如果您告诉我们您真正想要实现的目标,那么我们可以提供一个替代方案。如果我通过按住
Command+R
来刷新页面,并且我一遍又一遍地这样做,那么其中的任何内容都无法告诉我该页面是通过动态加载内容还是通过硬刷新来实现的。顺便说一句,我没有否决你。如果你硬刷新(或如果你来自外部导航),你会通过代码行。如果你已经在角度,你永远不会通过这条线。因此,您可以说您是通过硬刷新或导航来到这里的。试试看。在角度模块定义之前添加一个简单的
console.log(…)
。只有在硬刷新或真正导航后,您才能看到日志。哦,您的权利。如果页面是通过硬刷新加载的,那么您只需点击该代码一次,对吗?是的。此代码在单页应用程序生命周期中仅执行一次。