2015-10-23 39 views
0

在Angularjs页面通过ajax调用加载模板,浏览器永远不会重新加载它的全部内容(一个应用程序)。但是,您可以直接链接到页面本身,Angularjs会指出它需要加载哪些内容。如何判断Angularjs页面是否从刷新加载或导航到链接?

如何判断一个页面是否已直接链接到(可能是刷新)或者是否动态加载(例如,使用location.path('/somepath');时)?

我试过寻找文档,我还没有找到任何东西。我可以设置一个本地存储变量,但似乎矫枉过正。

+2

我相信你正试图解决错误的问题。如果你告诉我们你想要达到的目标,那么我们可以提供一个替代方案。 – Joseph

回答

0

你可以在任何Angular代码之前知道它。您可以查看window.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 ... 
+0

如果我通过按住'Command + R'来刷新页面,并且我一遍又一遍地执行,那么没有任何内容会通过动态加载内容或通过硬刷新来告诉我该页面是否到达。顺便说一句,我没有让你失望。 – Johnston

+0

如果您进行了硬刷新(或者如果您来自外部导航),则会传递代码行。如果你已经在Angular中,你永远不会传递这条线。所以你可以说你是来自硬刷新或导航。去尝试一下。在Angular模块定义之前添加一个简单的'console.log(...)'。只有在硬刷新或真正导航之后才会看到日志。 – Magus

+0

哦,你的权利。如果页面是从硬刷新加载的,那么你只能打一次该代码? – Johnston

0

页面从来没有真正刷新自己。所有文件都预先加载到浏览器中,然后只有内容才能让人耳目一新。 当您第一次打开页面时,再次手动刷新页面角度加载。

相关问题