0

我有现有PHP网站,我开始加入angular2组件。RC5 Angular2航线默认组件

我已经添加路由器的脚本,以帮助其网址加载不同的组件。

,当我浏览从组件页面的时候,我得到以下错误Error: Uncaught (in promise): Error: Cannot match any routes: 'dashboard'

我明白,我需要创建另一个组件,使这个错误消失。但我不想创建另一个组件,因为页面太多,我最终会为每个页面创建组件。

所以我想问一下,如何创建1个默认组件,如果没有组件可用,它将会启动,或者我怎么才能让这个错误消失,所以如果它找不到任何路由器或组件路径。

import { ModuleWithProviders } from '@angular/core'; 
import { Routes, RouterModule } from '@angular/router'; 
import {TestComponent} from "./test/test.component"; 


const appRoutes: Routes = [ 
    { path: 'search', component: TestComponent } 
]; 


export const appRoutingProviders: any[] = [ 

]; 

export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes); 

回答

3

你可以添加一个wildcard route这将重定向到一个默认组件,如果路线不匹配。

{ path: 'default', component: DefaultComponent }, 
{ path: '**', redirectTo: '/default' } 

所以如果路由不匹配,您的默认组件将被加载到路由器插座中。

希望这有助于!

0

我用这个作为默认路由:

{ path: '', component: Home, text: 'Home' } 

,这是我的全部路线:在github上

export const routes: TextRoute[] = [ 
    { path: '', component: Home, text: 'Home' }, 
    { path: 'accordion', component: AccordionDemo, text: 'Accordion' }, 
    { path: 'alert', component: AlertDemo, text: 'Alert' }, 
    { path: 'buttons', component: ButtonsDemo, text: 'Buttons' }, 
    { path: 'carousel', component: CarouselDemo, text: 'Carousel' }, 
    { path: 'collapse', component: CollapseDemo, text: 'Collapse' }, 
    { path: 'dropdown', component: DropdownDemo, text: 'Dropdown' }, 
    { path: 'pagination', component: PaginationDemo, text: 'Pagination' }, 
    { path: 'popover', component: PopoverDemo, text: 'Popover' }, 
    { path: 'progressbar', component: ProgressbarDemo, text: 'Progressbar' }, 
    { path: 'rating', component: RatingDemo, text: 'Rating' } 
]; 

export const AppRoutes = RouterModule.forRoot(routes, { useHash: true }); 

看看我learning angular2项目,明星们的欢迎。

+0

没了,仍然得到同样的错误。 – Basit

0

林太新的评论,我的问题是,如果你使用的是快递后台? app.use()可能能够为您节省一些麻烦。而不是宣布路线在app.js

var routes = require('routes'); 
app.use('/name-of-url', routes) 

然后尝试在路线

router.get('name-of-url', function(res,req,next){ 
    res.sendFile(path to php file to serve) 
}) 

您可能还需要您的明示模板引擎切换到PHP,不能完全肯定。