RC5 Angular2路由默认组件

时间:2016-08-31 00:04:22

标签: angularjs angular angular2-routing angular-routing angular2-template

我有现有的console.log(buffer) console.log(buffer.data) <Buffer cd d3 8d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00> 20 网站,我开始添加angular2组件。

我添加了路由器脚本,以帮助通过其URL加载不同的组件。

当我离开组件页面时,出现以下错误PHP

我理解,我需要创建另一个组件才能使此错误消失。但我不想创建另一个组件,因为页面太多,我最终会为每个页面创建组件。

所以我想问一下,如何制作1个默认组件,如果没有组件可用则会拾取或者如何才能使此错误消失,因此如果它找不到该路径的任何路由器或组件则不会触发

Error: Uncaught (in promise): Error: Cannot match any routes: 'dashboard'

3 个答案:

答案 0 :(得分:3)

如果路线不匹配,您可以添加wildcard route重定向到默认组件。

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

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

希望这会有所帮助!!

答案 1 :(得分:0)

我将此作为默认路线使用:

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

这是我的完整路线:

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

在github上查看我的learning angular2项目,欢迎明星。

答案 2 :(得分: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,而不是完全确定。