无需使用路由器即可获取Angular URL



我正在尝试从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

希望它有帮助:)

最新更新