angularjs получает параметр из URL

0

Я сейчас работаю над сайтом 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", я предполагаю, потому что я никогда не настраивал маршруты в угловом режиме, есть ли способ сделать это без установки маршрутов, поскольку мы не хотим использовать угловые для маршрутизации.

  • 0
    возможно, используя $ location.absUrl () и анализируя строку
Теги:
asp.net-mvc

1 ответ

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

Вы можете использовать службу $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);
}
  • 0
    Вы уверены, что $ location.url () будет работать, если angular не маршрутизирует приложение?
  • 0
    @SergioMarron Согласно документации ( docs.angularjs.org/api/ng/service/$location ), он не зависит от маршрутизации. Изменения в window.location являются живыми, и $location может их видеть.
Показать ещё 2 комментария

Ещё вопросы

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