Я использую $ 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
Вам нужно использовать $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
Если вы настроите $ 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);
$location
angularjs.