我正在尝试从URL获取参数,而无需在特定页面中使用路由器。我已经读到您可以使用$ location.search()。clearcart,这将赋予ClearCart的值。我变得不确定。有没有使用路由器的方法来获取此问题?
URL是:http://ec2-50-17-53-129.compute-1.amazonaws.com/home?clearcart=True
这是我的控制器:
app.controller('cartCtrl', function ($scope, $rootScope, $http, $location, dialogs, ngCart) {
if(($location.search()).clearCart != 'undefined' && ($location.search()).clearCart == 'true'){
for(var i = 0; i < ngCart.getTotalItems(); i++){
ngCart.removeItem(i);
}
}
}
这并不是真正的角度,但是您可以在控制器中使用它。
var queryStringValue = GetQueryStringParams('clearCart');
function GetQueryStringParams(sParam) {
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++) {
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam) {
return sParameterName[1];
}
}
};
也许您还没有正确注入$位置依赖性
您需要注入依赖项$位置才能使用它。
这是解决您的问题的帖子:
Angular JS:$位置注入未定义
在其中您可以找到此plunkr:
app.run(function($rootScope, $location) {
$rootScope.$on('$routeChangeSuccess', function () {
if (true)
$location.url("/login")
})
})
http://plnkr.co/edit/gf5lhtjqhz4mozfvcqit?p=preview
希望它有帮助:)