Angularjs Ui-router - передать дополнительные «незапланированные» параметры

0

У меня это простое состояние:

.state('search', {
    url: '/search',
    templateUrl: 'views/search.html',
    controller: 'search'
})

И я хотел бы передать любые дополнительные незапланированные параметры контроллеру при использовании состояния search или /search маршрута:

ui-sref="search({foo:1, bar:2})" 
// would call '#/search?foo=1&bar2', 
// match the state and pass foo and bar to the controller (through $stateParams)

Когда я пытаюсь это сделать, оно соответствует другому маршрутизатору. :(

Я прочитал много решений, которые подразумевают объявление каждого параметра в состоянии:

.state('search', {
    url: '/search?param1&param2&param3?...',
})

Но я не могу этого сделать, поскольку список параметров не определен и изменяется все время в зависимости от найденного содержимого.

Есть ли способ достичь этого? Или я где-то ошибаюсь?

Спасибо.


EDIT: Когда я пытаюсь вызвать прямо этот url: #/search?foo=1, search состояния совпадает, но параметр foo никогда не переходит в $ StateParams, который пуст. Я не знаю, как это получить.

  • 0
    Возможно, вы можете передать search({query: {foo: 1, bar: 2, baz: 3, ...}}) , чтобы запрос всегда был заполнен и содержал столько параметров, сколько вам нужно
  • 0
    @clement_frndz Это почти сработало. Я получил query: '[Object object]' . Но идея была хорошей. Я думал, что моя потребность была чем-то довольно очевидным ... Не знаю, как добиться успеха ...
Показать ещё 5 комментариев
Теги:
angular-ui-router

1 ответ

-2
.state('search', {
   params: ['param1','param2','param3'],
   templateUrl: '...',
   controller: '...'
});

ui-sref="search({param1:1, param2:2})"

Кредит переходит к параметрам для состояний без URL-адресов в ui-router для AngularJS

  • 0
    Пожалуйста, прочитайте вопрос

Ещё вопросы

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