Mai mult
Cum pentru a trece parametrii folosind ui-sref în ui-router-ul pentru controller
Am nevoie pentru a trece și de a primi doi parametri de stat vreau sa tranzit pentru utilizarea ui-sref
de ui-router.
Ceva de genul, folosind link-ul de mai jos pentru trecerea de la starea de "acasă" cu " foo " și " bar " parametrii:
<a ui-sref="home({foo: 'fooVal', bar: 'barVal'})">Go to home state with foo and bar parameters </a>
Primirea " foo " și " bar " valorile dintr-un controler:
app.controller('SomeController', function($scope, $stateParam) {
//..
var foo = $stateParam.foo; //getting fooVal
var bar = $stateParam.bar; //getting barVal
//..
});
Am nedefinit
pentru `$stateParam în controler.
Ar putea cineva să mă ajute să înțeleg cum se face?
Edit:
.state('home', {
url: '/',
views: {
'': {
templateUrl: 'home.html',
controller: 'MainRootCtrl'
},
'A@home': {
templateUrl: 'a.html',
controller: 'MainCtrl'
},
'B@home': {
templateUrl: 'b.html',
controller: 'SomeController'
}
}
});
364
3
Am'am creat o exemplu pentru a afișa cum să. Actualizat "de stat" definiție ar fi:
Și acest lucru ar fi controller:
Ceea ce putem vedea este că statul acasă are acum url-ul este definit ca:
ceea ce înseamnă, că params în url-ul se așteaptă ca
Aceste două link-uri vor treacă în mod corect argumente în controler:
De asemenea, operatorul nu consuma
$stateParams "în loc de" $stateParam
.Link-ul de la doc:
Puteti verifica aici
params : {}
Există, de asemenea, nou, mai granular setare
params : {}
. Ca ne-am'am văzut deja, putem declara parametri ca parte aurl
. Dar cuparams : {}
configurare - putem extinde această definiție sau chiar să introducă parametrii care nu sunt parte a url-ului:Setările disponibile pentru params sunt descrise în documentația de $stateProvider
Mai jos este doar un extras
Putem numi aceste params acest fel:
Verificați-l în acțiune aici
Nu't trebuie neapărat să aibă parametrii în interiorul URL-ul.
De exemplu, cu:
Veți fi capabil de a trimite parametrii de stat, folosind fie:
Desigur, dacă vă reîncărcați pagina o dată pe "acasă" de stat, vei pierde parametrii de stare, deoarece acestea nu sunt stocate nicăieri.
O descriere completă a acestui comportament este documentat aici, sub
params
rând în stat(nume, stateConfig)` secțiune.Pur și simplu greșit
$stateParam
, ar trebui să fie$stateParams
(cu "s"). Ca's de ce ai nedefinit ;)