возвращается значение null при использовании $ location.search

0

Я использую $ location.search для получения параметров из URL-адреса, но он дает нуль. Мой URL-адрес: http://localhost/Site/? User = 12345.

app.controller('UrlController', ['$scope', '$log','$location', function($scope,$log,$location) {

    var testsearch = $location.search();
    console.log(testsearch);

}]) 

Я хочу получить значение 12345 для пользователя, разобрав URL-адрес. Как это можно достичь.

как я могу проанализировать параметры из URL-адреса. Я проверил документацию https://docs.angularjs.org/api/ng/service/ $ location

Теги:

2 ответа

2
Лучший ответ

Вам нужно использовать $window

Так:

var qstring = $window.location.search.substring(1);

substring(1) просто удаляет ?

Затем вы можете использовать функцию, подобную этой, для ее анализа в объект

String.prototype.parseQuerystring = function () {
    var query = {};
    var a = this.split('&');
    for (var i in a)
    {
        var b = a[i].split('=');
        query[decodeURIComponent(b[0])] = decodeURIComponent(b[1]);
    }

    return query;

}

И назовите это:

var qParts = qString.parseQuerystring();

Проблемы с $ location

Есть некоторые известные проблемы с $location зависимости от режима HTML5 и т.д. Где $ window не имеет этой проблемы. EG https://github.com/angular/angular.js/issues/7239

  • 0
    Не могу OP напрямую использовать службу определения $location angularjs.
  • 0
    @Darren, как нам это сделать, используя angulars $ location?
Показать ещё 17 комментариев
0

Если вы настроите $ location для использования html5Mode (history.pushState), вам нужно указать базовый URL-адрес приложения с тегом или настроить $ locationProvider, чтобы не требовать базовый тег, передав объект определения с requireBase: false в $ locationProvider. html5Mode():

  app.config(['$locationProvider', function($locationProvider) {
    $locationProvider.html5Mode({
        enabled: true,
        requireBase: false
    });
}]);

обратитесь к https://docs.angularjs.org/error/ $ location/nobase

И для получения параметра url вы можете использовать belwo в своем контроллере. вы получаете параметр как массив в $ location.search()

var urlParameter = $location.search(); console.log(urlParameter);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню