2015-06-11 1 views
0

Я добавляю угловое приложение к части существующей страницы, которая использует множество элементов управления MVC MVKM в приложении ASP.NET MVC. Мне повезло.Как я могу получить доступ к параметрам URL-адреса без маршрута в угловом приложении?

Я хочу получить доступ к параметру из маршрута URL, который находится перед угловым маршрутом.

Таким образом, для модуля с:

angular 
    .module('myModule', ['someCommonControls', 'ngRoute', 'aConfigModule']) 
    .config(function ($routeProvider) { 
     $routeProvider 
      .when('/Something/Something/Details/:somethingId', { 
       templateUrl:'/path/to/templates/awesome.html', 
       controller: 'awesome', 
       controllerAs: 'awesome' 
       } 
      }) 
      .otherwise({ redirectTo: '/awesome' }) 
     ; 
}); 

Когда я ударил http://localhost/Something/Something/Details/something-id-guid-deadbeef
загрузки страницы и содержит мое приложение и иным образом маршруты в http://localhost/Something/Something/Details/something-id-guid-deadbeef#awesome

Теперь маршрут основан на #awesome, поэтому не содержит somethingId для меня, чтобы нажать на мой контроллер ctor.

Как я могу получить к нему доступ и передать его на ctor?

+0

Попробуйте использовать режим HTML5 вместе с режимом Hashbang. См .: [этот ответ] (http://stackoverflow.com/a/16678065/4623467). – alesc

+0

@robin Giltner Я добавил тег kendo-ui, так как я интегрирую это приложение на страницу, которая является частью приложения kendui-ui. – StuperUser

+1

Я получил вас сейчас @StuperUser, так как это будет сидеть поверх мобильной маршрутизации KendoUI уже на месте. Хороший звонок. –

ответ

0

Так как я в основном получаю значение из URL-адреса, я использовал old school approach пока я не могу использовать маршруты по всему приложению должным образом:

ctrl.theGuid = ''; 
if (document.location.pathname.indexOf('/Something/Something/Details') != -1) { 
    //TODO update this to the routing engine when possible 
    //0:first '/', 1:Something, 2:Something, 3:Details, 4: guid 
    ctrl.theGuid = document.location.pathname.split('/')[4]; 
} 
+0

Вы также можете использовать службу $ location, которая является абстракцией углов 'window.location'. –

+0

У меня возникли проблемы с инъекцией в контроллер. Не могли бы вы привести пример использования @JoaoLeal? – StuperUser

+1

Вы можете видеть, помогает ли это, это немного странно с помощью plnkr: http://plnkr.co/edit/VZGQgNhC48V52q3mVkwr?p=preview и https://docs.angularjs.org/guide/$location –

Смежные вопросы