2016-03-30 23 views
8

Uygulama dosyasından (configConfig.ts) farklı bir dosyaya yol yapılandırması eklemek istiyorum. Bu mümkün? ÖrneğinAna uygulama dosyasından ayrı açısal 2 yol yapılandırması

:

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 {} 

farklı dosya içine @RouteConfig params taşımak ve sadece ana uygulama dosyası içine yüklemek istiyor. Bu mümkün? Teşekkürler. (Route config wery büyük olacak, bu yüzden bunu bölmek istiyorum).

İlk sorun, yapılandırmayı farklı bir dosyaya taşımaya çalıştığımda ve sadece uygulama dosyasında JSON'u almayı denediğimde - Tanımsız Bileşen ile hatalar aldım. Bileşenler, bu sorunu çözdüğü için s not a string. Can.

cevap

12

Tüm rota tanımlarını kesinlikle ayrı bir dosyaya taşıyabilirsiniz. Rota-definitions.ts gibi bir dosyada

: Sonra geri

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 
    } 
]; 

sizin app.component.ts sadece dosya yapın:

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

teşekkürler Rob. Ben zaten yaptım (acı ve ıstırap ile birkaç saat sonra). – Velidan