2015-07-24 2 views
0

Я пытаюсь использовать параметр маршрута в методе разрешения маршрута $ routeProvider. Вот мой код:

.when('/agency/edit/:agencyId', 
{ 
    controller: 'agencyController', 
    templateUrl: baseUrl + 'Content/templates/agencyUpsert.html', 
    resolve: { 
     agency: ['$routeParams', 'agencyService', function ($routeParams, agencyService) { 
      return agencyService.getAgency($routeParams.agencyId); 
     }] 
    } 
}) 

Как вы можете видеть, что я пытаюсь получить к нему доступ через $routeParams.agencyId, но я также попытался agencyId непосредственно (надеясь, что он будет доступен в содержании маршрута), но это не определено ,

Как я могу обратиться к нему успешно?

ответ

1

Вы должны ссылаться на него, используя $route вместо $routeParams так:

.when('/agency/edit/:agencyId', 
{ 
    controller: 'agencyController', 
    templateUrl: baseUrl + 'Content/templates/agencyUpsert.html', 
    resolve: { 
     agency: ['$route', 'agencyService', function ($route, agencyService) { 
      return agencyService.getAgency($route.current.params.agencyId); 
     }] 
    } 
}) 

От docs:

Обратите внимание, что $ routeParams обновляются только после изменения маршрута завершается успешно. Это означает, что вы не можете полагаться на $ routeParams, правильные в функциях разрешения маршрута. Вместо этого вы можете использовать $ route.current.params для доступа к параметрам нового маршрута.

+0

Вы просто собираете очки у меня этим утром! Еще раз спасибо. Мне нужно найти лучшие статьи ... – im1dermike

+0

Добро пожаловать :) – jsonmurphy

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