2016-01-27 11 views
9

文字列値の代わりにjsonオブジェクトを渡すことができるagnular2のapiはありますか?例えば。 Router.navigate()では私はルートパラメーターangle2のRouter.navigate経由でRouteDataを渡す方法

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

を渡すことができますし、RouteParams.get(key) : stringを使用して、それを取得することができます。 しかし、これは文字列の値だけを返します。私はjsonオブジェクトを渡す必要があります。

は、私はルーティングがURLのに依存しており、両方のパス変数とクエリパラメータが文字列なので、それはボックスのうち可能なものはないと思うの任意のポインタ

答えて

2

を感謝しています。 RouterParamsRouterDataは両方とも文字列属性のみをサポートしています。

これをシミュレートするには、JSON.stringifyを使用してJSONオブジェクトをエンコードし、反対側で解析する以外の解決策はありません。

これを説明するplunkrはhttps://plnkr.co/edit/jbl7v5fHQEmf4F8tpXDO?p=previewです。

は ティエリー

+0

RouterParamsとRouterDataは角/ルータ、それ以上@の一部ではありません。 – eomeroff

6

はRouterParamsのparamsプロパティを使用している作品別の解決策、それはあなたのお役に立てば幸いです。 これは推奨される方法ではないかもしれませんが、Beta8のように動作します。

あなたはRouter.navigate(['/myRoute',{someProperty:"SomeValue"}] でナビゲートする場合は、とのparamにアクセスすることができます。

constructor(routeParams: RouteParams){ 
    let myPassedData: any = routeParams.params; 
    console.log(myPassedData.someProperty); #Prints "SomeValue" 
} 
関連する問題