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



在Angularjs中,页面是通过ajax调用模板加载的,浏览器永远不会重新加载它的完整内容(单个应用程序)。然而,你可以直接链接到页面本身,然后Angularjs会计算出需要加载哪些内容。

我怎么知道一个页面是否已经直接链接到(可能从刷新)或如果它是动态加载的(例如,当使用location.path('/somepath');)?

我试着在文档中寻找,但我没有找到任何东西。我可以设置一个本地存储变量,但这似乎有些多余。

你可以在任何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 ...

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

最新更新