2016-03-22 9 views
1

デフォルトのパスロケーション戦略を使用してAngular 2アプリでルーティングを実装しました。デフォルト以外のURLパスを再ロードするとき、ルートパスに関連付けられたコンポーネントではなく、デフォルトルートに関連付けられたコンポーネントがレンダリングされる点を除いて、正常に動作します。例えば角2:ロード時に最初のルートパスをナビゲートする方法

http://localhost:5000/locator/bycountyディスプレイhttp://localhost:5000におけるコンポーネントサーバからURLをリロードする(Iは、同じファイルにすべての静的経路を解決するために、設定サーバ側のルーティングを持っています)。

これは予期した動作ですか、私のアプリは間違っていますか?

+0

あなたが提供した情報は、問題を診断するのに十分ではありません。 –

+0

私は問題を診断するよう求めていません。私はこれが角2ルータの予想される動作であるかどうかを判断しようとしています。ページが最初にロードされたときにルータがURLパスからルートを自動的に通過する必要があることを意味していますか? – gxclarke

+0

私はあなたの質問が、バグであるかAngularかあなたのコードであるかどうかを議論するのに十分な情報を提供していないことを暗示しています; –

答えて

1

答えは、アプリが誤動作していることです。その理由は、単純な<base href="/" />を使用するのではなく、初期化時にベースを動的に設定したためです。

bootstrap(AppComponent, [ 
    ROUTER_PROVIDERS, 
    provide(APP_BASE_HREF, { useValue: location.pathname }) // <= BAD 
]); 

異なるルーターの問題を解決しようとするとき、私は一点でどこからコードのprovide(....)行をコピーしていました。この行は、ロード時のURLパスに基づいてルータのルートパスを動的に設定します。そのため、最初のロードでは、URLパスで表されるルートではなく、常にデフォルトルートが見えました。