バージョン「@ angular/router」のように新しいルーターに切り替えようとしました:「3.0.0-beta.2」と「@ angular/*」の組み合わせ:「2.0.0-rc.4」、 ComponentRouter。
ただし、デフォルトのHomeComponentを使用してアプリをロードしようとすると問題が発生します。
Cannot find primary outlet to load 'HomeComponent'
これは、インラインテンプレートスタイルを使用する代わりに、templateUrlと外部htmlファイルを使用することに関係しているようです。
HomeComponentは最初はウィンドウに表示されず、エラーはコンソールに出力されます。ただし、ホームコンポーネントへのリンクを使用すると、実際に表示されます。
私がから変わるとすぐに
templateUrl: 'home.html'
に
template: '<router-outlet></router-outlet>'
エラーがなくなり、HomeComponentが表示され、ルーティングは期待どおりに機能します。
それは既知の問題ですか? templateUrlを使用しているユーザーに対して機能しますか?動作させるために尊重しなければならないものはありますか?
問題は、アプリの読み込み画面のために、<router-outlet></router-outlet>
は、競合状態が原因でまだ存在していなかった。アウトレットを含むHTMLパーツを非表示にする必要がある場合は、[hidden]
の代わりに *ngIf
、アウトレットが常にDOMにあり、条件付きで削除されないようにします。