所以我有一个旧的应用程序,住在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
运行它将具有该查询字符串的值,但这不是我的用户将添加书签的网址。