У мене такий простий стан:
.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¶m2¶m3?...",
})
Але я не можу цього зробити, оскільки список параметрів насправді не визначений і весь час змінюється залежно від вмісту, що шукається.
Чи є спосіб досягти цього? Або я десь помиляюся?
Дякую.
РЕДАГУВАТИ : Коли я намагаюся зателефонувати безпосередньо за цією адресою: #/search?foo=1
, стан search
збігів, але foo
параметр ніколи не переходить до $ stateParams, який порожній. Я не знаю, як це отримати.
Відповіді:
-1 для відповіді № 1.state("search", {
params: ["param1","param2","param3"],
templateUrl: "...",
controller: "..."
});
ui-sref="search({param1:1, param2:2})"
Кредит йде Параметри для станів без URL-адрес в ui-маршрутизаторі для AngularJS