如何在角度开始运行之前从URL获取查询字符串?

时间:2015-08-04 20:43:15

标签: angularjs url query-string

所以我有一个旧的应用程序,住在url.com/app。通过应用程序的大多数功能,guid在查询字符串url.com/app?ID=guid中作为ID传递。我正在尝试使用新的角度SPA弃用该应用,但我的用户使用上面的查询字符串为URL添加了书签。现在我不需要角度的查询字符串(我将使用路由而不是不同的页面),如何在页面加载时抓取查询字符串,将其存储在$ rootScope中,然后继续?

现在发生的事情是,如果我键入newurl.com/app?querystring,angular会将其更改为newurl.com/app?querystring/#,$ location将无法再查看查询字符串。有没有什么办法可以在页面加载时获取查询字符串并存储它,然后可能将其擦除?

这是我的模块声明:

(function () {
    "use strict";
    angular.module('AngularWebAPI', ['ngRoute', 'common'])
        .run(['$rootScope', '$route', '$location', function ($rootScope, $route, $location) {
            $rootScope.locationSearch = $location.search();
        }]);
})();

当我在newurl.com/app?querystring运行时,它会将其更改为newurl.com/app?querystring/#,而$rootScope.locationSearch是一个空对象。但是,如果我在newurl.com/app/#/?querystring $rootScope.locationSearch运行它将具有该查询字符串的值,但这不是我的用户将添加书签的网址。

0 个答案:

没有答案