2017-01-09 7 views
1

У меня есть следующий маршрут и объект решительность с функцией all_data:Как передать аргумент из ngRoute в функцию внутри объекта разрешения?

.when('/events', { 
    controller: eventCtrl, 
    templateUrl: 'some/path.html', 
    resolve:{ 
     all_data: function(){ 

     } 

Мой вопрос, если я прохожу некоторый параметр на маршрут, как это:

.when('/events/:param1'), { 
.... 

я могу как-то передать это " param1 "в функцию" all_data "следующим образом:

.... 
resolve: { 
all_data: function(param1){ 
    console.log(param1); 
} 
... 

?

ответ

0

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

- AngularJS $routeParams API Reference

+0

Большое спасибо. Это действительно сработало лучше. В противном случае я думал о том, как использовать обратные вызовы после получения объекта $ routeParams. Это действительно не сработало. – mirchev1977

1

Вы можете написать свой метод, как это решимость assiuming вы используете ngRoute и URL, как '/events/:param1'

all_data: ['$routeParams', function($routeParams){ 
    console.log($routeParams.param1); 
} 

Использование $stateParams вместо $routeParams если вы используете UI-маршрутизатор.

+0

Спасибо, это было большим подспорьем для меня. К сожалению, я не могу оценить вас, так как у меня нет необходимых баллов для голосования. Другое дело: Вы забыли вставить закрывающую квадратную скобку в конце: all_data: [ '$ routeParams', функция ($ routeParams) { console.log ($ routeParams.param1); }] – mirchev1977

+0

Нет проблем, если мой ответ решает вашу проблему, отметьте его как принятый. Спасибо –

+0

Готов, отметил это как принято! – mirchev1977

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

  • Нет связанных вопросов^_^