Podemos usar params
, novo recurso do UI-Router:
Referência da API / ui.router.state / $ stateProvider
params
Um mapa que opcionalmente configura parâmetros declarados no URL ou define parâmetros adicionais que não são do URL. Para cada parâmetro que está sendo configurado, adicione um objeto de configuração com chave ao nome do parâmetro.
Veja a parte: " ... ou define parâmetros adicionais que não são de URL ... "
Portanto, o estado def seria:
$stateProvider
.state('home', {
url: "/home",
templateUrl: 'tpl.html',
params: { hiddenOne: null, }
})
Poucos exemplos formam o documento mencionado acima :
// define a parameter's default value
params: {
param1: { value: "defaultValue" }
}
// shorthand default values
params: {
param1: "defaultValue",
param2: "param2Default"
}
// param will be array []
params: {
param1: { array: true }
}
// handling the default value in url:
params: {
param1: {
value: "defaultId",
squash: true
} }
// squash "defaultValue" to "~"
params: {
param1: {
value: "defaultValue",
squash: "~"
} }
EXTEND - exemplo de trabalho: http://plnkr.co/edit/inFhDmP42AQyeUBmyIVl?p=info
Aqui está um exemplo de uma definição de estado:
$stateProvider
.state('home', {
url: "/home",
params : { veryLongParamHome: null, },
...
})
.state('parent', {
url: "/parent",
params : { veryLongParamParent: null, },
...
})
.state('parent.child', {
url: "/child",
params : { veryLongParamChild: null, },
...
})
Pode ser uma chamada usando ui-sref:
<a ui-sref="home({veryLongParamHome:'Home--f8d218ae-d998-4aa4-94ee-f27144a21238'
})">home</a>
<a ui-sref="parent({
veryLongParamParent:'Parent--2852f22c-dc85-41af-9064-d365bc4fc822'
})">parent</a>
<a ui-sref="parent.child({
veryLongParamParent:'Parent--0b2a585f-fcef-4462-b656-544e4575fca5',
veryLongParamChild:'Child--f8d218ae-d998-4aa4-94ee-f27144a61238'
})">parent.child</a>
Veja o exemplo aqui