Eu tenho este estado simples:
.state("search", {
url: "/search",
templateUrl: "views/search.html",
controller: "search"
})
E eu gostaria de passar qualquer extra nao planejado parâmetros para o controlador ao usar search
estado ou /search
rota :
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)
Quando tento fazer isso, ele corresponde ao contrário do roteador. :(
Eu li muitas soluções que implicam em declarar cada parâmetro no estado:
.state("search", {
url: "/search?param1¶m2¶m3?...",
})
Mas não posso fazer isso porque a lista de parâmetros não está realmente definida e muda o tempo todo dependendo do conteúdo pesquisado.
Existe uma maneira de conseguir isso ? Ou estou errado em algum lugar?
THX.
EDITAR : Quando tento ligar diretamente para este url: #/search?foo=1
, o Estado search
corresponde, mas o foo
parâmetro nunca vai para $ stateParams que está vazio. Não sei como metê-lo.
Respostas:
-1 para resposta № 1.state("search", {
params: ["param1","param2","param3"],
templateUrl: "...",
controller: "..."
});
ui-sref="search({param1:1, param2:2})"
O crédito vai para Parâmetros para estados sem URLs em ui-router para AngularJS