2016-01-27 26 views
9

Esiste un'API in agnular2 che consente di passare oggetti JSON anziché valori di stringa. Per esempio. In Router.navigate() posso passare parametri del percorsocome passare RouteData tramite Router.navigate in angular2

Router.navigate('routename',[{key:stringvalue}]) 

e posso recuperarlo usando RouteParams.get(key) : string. Ma restituisce solo valori stringa. Devo passare l'oggetto JSON.

Apprezziamo qualsiasi puntatori

risposta

2

penso che non è qualcosa di possibile, fuori dalla scatola in quanto si basa su di routing URL ed entrambe le variabili di percorso e parametri di query sono stringhe. Entrambi RouterParams e RouterData supportano solo attributi di stringa.

Per simulare ciò, non vedo altre soluzioni che codificare gli oggetti JSON utilizzando JSON.stringify e analizzandoli sull'altro lato.

Ecco un plunkr che descrive questo: https://plnkr.co/edit/jbl7v5fHQEmf4F8tpXDO?p=preview.

Spero che ti aiuta, Thierry

+0

RouterParams e RouterData non fanno parte del @ angolare/router più. – eomeroff

6

un'altra soluzione che funziona è utilizzando il params proprietà di RouterParams. Questo potrebbe non essere il modo preferito, ma funziona (da Beta8).

se navigare con Router.navigate(['/myRoute',{someProperty:"SomeValue"}] è possibile accedere al param con:

constructor(routeParams: RouteParams){ 
    let myPassedData: any = routeParams.params; 
    console.log(myPassedData.someProperty); #Prints "SomeValue" 
} 
Problemi correlati