2016-05-17 16 views
4

私が廃止予定のルータを使用しているとき、私はrouter.configを実行してオブジェクトを渡すことができました。つまり、アプリケーションが起動した後にルータ自身が少し設定されているのですが、オブジェクトは@RouterConfigを使用したのと同じ "テンプレート"を持っていました。私が探しているのは、このような新しいルータを設定する方法があるかどうかです。ドキュメンテーションを見てきましたが、まだ文書化されていないので少し紛失しています。原因新しいAngular2ルータの設定

編集

んに答えるために、私は@Routesを使用することはできません。私は、ルータの構築後に設定をロードしているのです。ここで私は古いルータでそれをやったかのスニップです:

 myLoader.loadComponentConfig(configPath) 
     .then(components => { self.Components = components; 
     components.map(comp => { 
      self.RouterComponents.push(
       { 
        path: '/' + comp.name, 
        component: comp, 
        as: comp.name 
       } 
      )}); 
      router.config(self.RouterComponents); 
     }); 

あなたが見ることができるように、私は(RouterComponents)自分自身にJSONオブジェクトを構築して、ルータに送信しています。私は同じように新しいルータ、または同様の何かを行う方法を探しています。実際に

+0

を提供します。ルート設定を返すサービスを作成しました。サービスから受信したngFor以上のデータを使ってrouteLinkを書くことができました。しかし、私たちは@Routesデコレータ内でサービスを使うことはできません。私たちはルータの設定方法を見つけられませんでした。 – Siraj

+0

@Siraj ngrxルーターを試してみるか、廃止予定のルータを使用することができます。 – user1640736

+0

多分これを待つhttps://github.com/angular/angular/issues/8590 – Siraj

答えて

3

>= RC.3https://angular.io/docs/ts/latest/api/router/index/Router-class.htmlresetConfig

router.resetConfig([ 
{ path: 'team/:id', component: TeamCmp, children: [ 
    { path: 'simple', component: SimpleCmp }, 
    { path: 'user/:name', component: UserCmp } 
] } 
]); 

アプリケーションの起動時にエラーが発生しないように、ダミールータの設定を行う必要があります。

https://github.com/angular/angular/issues/11437#issuecomment-245995186は私も同様のバリケードに直面していますRC.6 Plunker

-1

、要するにあなたは@Routesの代わり@RouterConfigを使用する必要があります。ここではサンプルです:

@Routes([ 
    {path: '/crisis-center', component: CrisisListComponent}, 
    {path: '/heroes',  component: HeroListComponent}, 
    {path: '*',  component: CrisisListComponent} 
]) 
export class AppComponent { } 

詳細はangular.ioに、このドキュメントを参照してください:

あなたはそれがこの章以降、このドキュメントでは、いくつかのタイプミスを残っていることに気づくことができます進行中の作品です;-)

+0

質問をもう一度チェックし、関連する詳細を追加しました。申し訳ありませんが十分に明確でない場合。 – user1640736

0

私はそれがより良いと思います:

あなたのcomponent.tsで

import { ROUTER_PROVIDERS } from 'angular2/router'; 

bootstrap(AppComponent, [ 
    ROUTER_PROVIDERS, 
    provide(LocationStrategy, { useClass: HashLocationStrategy }) 
]); 

import { Router, RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from 'angular2/router'; 
import { APP_ROUTES } from './route.config'; 

@RouteConfig(APP_ROUTES) 

そしてクリートファイルroute.config.ts:main.tsで

新しいルータで

import { Route } from 'angular2/router'; 

import { HomeComponent } from './home/home.component'; 
import { TableComponent } from './table/table.component'; 

export var Routes = { 
    home: new Route({ 
     path: '/home', 
     component: HomeComponent, 
     name: 'Home', 
     useAsDefault: true, 
     data: { 
      title: 'Home' 
     } 
    }), 
    table: new Route({ 
     path: '/table/:table', 
     component: TableComponent, 
     name: 'Table' 
    }) 
}; 

export const APP_ROUTES = Object.keys(Routes).map(r => Routes[r]); 
+0

1。これは非推奨のルータです。 2.私は時々更新されるルートを持つjsomファイルを持っていますので、私はそれを再設定する必要があります。 – user1640736

関連する問題