Я сейчас работаю над сайтом asp.net mvc, в котором мы используем angularjs для привязки к модели. У меня есть настройка контроллера, но мне нужно захватить идентификатор из URL-адреса, чтобы передать его службе. мой url выглядит так:
http://localhost/myapp/section/5
Мне нужно захватить 5 из URL-адреса, мы не используем угловые для маршрутизации, так или иначе, чтобы захватить это через угловые? В противном случае я мог бы использовать.net для ввода этого параметра в глобальную переменную js и использовать угловое значение для считывания идентификатора.
Я настраиваю свой угловой контроллер следующим образом:
myModule.controller('SectionController', ['$scope', 'sectionRepository', '$routeParams', SectionController]);
function SectionController($scope, sectionRepository, $routeParams) {
var vm = this;
alert($routeParams.id);
предупреждение возвращает "undefined", я предполагаю, потому что я никогда не настраивал маршруты в угловом режиме, есть ли способ сделать это без установки маршрутов, поскольку мы не хотим использовать угловые для маршрутизации.
Вы можете использовать службу $location
для захвата URL. Оттуда просто проанализируйте его.
function SectionController($location) {
var url = $location.url();
//regex is slow, you should use substring/slice instead
//var regex = /(?:section\/)[0-9]+/;
var id = url.substring(url.indexOf("section/") + "section/".length);
alert(id);
}
window.location
являются живыми, и $location
может их видеть.