Angular 2 - 是否可以将我的路由存储在另一个文件中并将它们导入到app.ts文件中(因为随着时间的推移路由会积累)?

Ang*_*arM 2 javascript angular

Angular 2 - 是否可以将我的路由存储在另一个文件中并将其导入app.ts文件中(因为随着时间的推移,路由将会建立)

这是我当前app.ts的一个例子.我基本上想将路由配置路由移动到另一个文件以使其更清洁:

   import {Todo} from './components/todo/todo';
   import {About} from './components/about/about';
   import {AuthService} from './authService';

   import {Component, View, bootstrap, bind, provide} from 'angular2/angular2';
   import {Router, ROUTER_BINDINGS, RouterOutlet, RouteConfig, RouterLink, ROUTER_PROVIDERS, APP_BASE_HREF} from 'angular2/router';
   import {Location, LocationStrategy, HashLocationStrategy} from 'angular2/router';

   @Component({
       selector: 'app'
   })

   @View({
       template: `
           <div class="container">
               <nav>
                   <ul>
                       <li><a [router-link]="['/Home']">Todo</a></li>
                       <li><a [router-link]="['/About']">About</a></li>
                   </ul>
               </nav>
               <router-outlet></router-outlet>
           </div>
       `,
       directives: [RouterOutlet, RouterLink]
   })

   @RouteConfig([
       { path: '/', redirectTo: '/home' },
       { path: '/home', component: Todo, as: 'Home' },
       { path: '/about', component: About, as: 'About' }
   ])

   export class AppComponent {
       constructor(router: Router, _authService: AuthService, _location: Location){

           //Subscribe - watches routes pop state events.
           router.subscribe((val) => {      

               _authService.isUserLoggedIn().then((success) => {                 
                   router.parent.navigate(['/About']);
               });

           })       
       }
   }

   bootstrap(AppComponent, [ROUTER_PROVIDERS, provide(APP_BASE_HREF, {useValue: '/'}), AuthService]);
Run Code Online (Sandbox Code Playgroud)

Erv*_*jku 10

我个人创建了一个route.interface.ts和一个route.ts文件.

路由文件

import {Route} from './route.interface'
import {AuthComponent} from './auth/auth.component'

export const Routes: Route[] = [
    {
        path: '/auth',
        name: 'Authenticate',
        component: AuthComponent
    },
];
Run Code Online (Sandbox Code Playgroud)

路由接口

export interface Route {
    path: string,
    name: string,
    component: any,
}
Run Code Online (Sandbox Code Playgroud)

用于主要组件.

import { RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from 'angular2/router'
import {Routes} from './routes'

@Component({
    selector: 'app',
    templateUrl: './angular2/app/layout.component.html',
    directives: [
        ROUTER_DIRECTIVES
    ],
    providers: [
        HTTP_PROVIDERS,
        ROUTER_PROVIDERS
    ],
})

@RouteConfig(Routes)
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.你甚至可以创建一个路由服务并将其注入主要组件.享受编码!