2017-02-16 16 views
0

AngularJSからng2に半アップグレードされたアプリケーションでワイルドカードパスルーティングを行う方法がわかりません。一般的にAngularJSとAngular 2ルーティングを混在させる際のワイルドカードパス

、あなたはこのように、ルーティングの両方の種類のミックス:

デュアルルータのセットアップを持っている最初のステップは、各ルータのための一つの出口を含むアンギュラルート コンポーネントを追加することです。 AngularJSは ng-viewを使用し、Angularはrouter-outletを使用します。使用しているルータが ルータの場合、もう一方のコンセントは空になります。角度2で

import { Component } from '@angular/core'; 
@Component({ 
    selector: 'my-app', 
    template: ` 
    <router-outlet></router-outlet> 
    <div ng-view></div> 
    `, 
}) 
export class AppComponent { } 

https://angular.io/docs/ts/latest/guide/upgrade.html#!#dividing-routes-between-angular-and-angularjs

次のようなワイルドカードパスを指定することができます。あなたはAngularJSで

でき

{PageNotFoundComponentパス: '**'、コンポーネントを}次のようなワイルドカードパスを使用してください:

$routeProvider 
    .otherwise({ 
    template: '<page-not-found></page-not-found>', 
    }); 

すべてをまとめてパスが処理されない場合、両方のルータが<page-not-found>を放出しないようにするにはどうすればよいですか?

答えて

0

他のすべてが正しく設定されている場合、<div ng-view></div>が角2 AppComponentコンポーネントで機能することが確認できます。 (AppComponentAppModulebootstrapアレイに追加する)。

ng1ルートが要求されたときにAngularがエラーをスローしないようにするには、HybridUrlHandlingStrategyを使用します。 NG2ページが要求されたとき

は、404ページのレンダリングからNG1を防ぐために、(「」)空のテンプレートをダミーのルートを追加します。

$routeProvider 
    .when('/some/ng1/path', {template: '<something></something>'}) 
    .when('/some/ng2/path', {template: ''}) // ng2 route 
    .otherwise({template: '<page-not-found></page-not-found>'}); 
関連する問題