2016-03-30 23 views
8

私は、ルート設定をアプリケーションファイルから別のファイル(routeConfig.ts)に分けたいと思っています。可能です?例えばメインアプリケーションファイルから別の角度2のルート設定

import {Component} from 'angular2/core'; 
import {RouteConfig, ROUTER_DIRECTIVES} from 'angular2/router'; 
import {DashboardComponent} from './dashboard/dashboard.component'; 


import {MessagesComponent} from '../modules/messages/messages.component'; 


@Component({ 
    selector: 'app', 
    directives: [ 
     ROUTER_DIRECTIVES 
    ], 
    templateUrl: './built/application/app.html' 
}) 

@RouteConfig([ 
    { 
    path: '/', 
    name: 'Dashboard', 
    component: DashboardComponent, 
    useAsDefault: true 
    } 
]) 

export class AppComponent {} 

私は別のファイルに@RouteConfig paramsはを移動し、ちょうどメインのアプリケーションファイル内にそれをロードします。可能です?ありがとう。 (ルート設定が大きくなるので、これを分割したい)。

まず、configを別のファイルに移動しようとすると、アプリケーションファイルにJSONをインポートしようとすると、Undefined Componentでエラーが発生します。 componentsNameなので、s not a string. Canはこの問題を解決します。

答えて

12

必ずすべてのルート定義を別々のファイルに移動してください。ルートdefinitions.tsようなファイルで

import { RouteDefinition } from 'angular2/router'; 
import { HomeComponent } from './home/home.component'; 
import { AboutComponent } from './about/about.component'; 
import { InfoComponent } from './info/info.component'; 

export const RouteDefinitions: RouteDefinition[] = [ 
    { 
     path: '/', 
     name: 'Home', 
     component: HomeComponent, 
     useAsDefault: true 
    }, 
    { 
     path: '/about', 
     name: 'About', 
     component: AboutComponent 
    }, 
    { 
     path: '/info', 
     name: 'Info', 
     component: InfoComponent 
    } 
]; 

その後戻ってあなたapp.component.tsでは、ちょうどんファイル:

import { Component } from 'angular2/core'; 
import { RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from 'angular2/router'; 
import { RouteDefinitions } from './route-definitions'; 

@Component({ 
    selector: 'my-app', 
    templateUrl: 'app/app.component.html', 
    directives: [ROUTER_DIRECTIVES], 
    providers: [ 
     ROUTER_PROVIDERS 
    ] 
}) 
@RouteConfig(RouteDefinitions) 
export class AppComponent { } 
+1

おかげでロブ。私はすでに(苦痛と苦しみで数時間後)それをやった。 – Velidan

関連する問題