我不知道如何在从AngularJS升级到ng2的应用程序中进行通配符路径路由。
通常,您可以混合使用这两种路由:
设置双路由器的第一步是添加Angular根 每个路由器包含一个插座的组件。 AngularJS将使用 ng-view和Angular将使用router-outlet。当一个人正在使用它时 路由器,其他插座将是空的。
import { Component } from '@angular/core'; @Component({ selector: 'my-app', template: ` <router-outlet></router-outlet> <div ng-view></div> `, }) export class AppComponent { }
https://angular.io/docs/ts/latest/guide/upgrade.html#!#dividing-routes-between-angular-and-angularjs
在Angular 2中,您可以指定通配符路径,如下所示:
{path:'**',component:PageNotFoundComponent}
在AngularJS中,您可以使用如下通配符路径:
$routeProvider
.otherwise({
template: '<page-not-found></page-not-found>',
});
当我将所有内容放在一起并且未处理路径时,如何避免两个路由器都发出<page-not-found>
?
答案 0 :(得分:0)
如果其他所有内容都设置正确,我可以确认<div ng-view></div>
在角度2 AppComponent
组件中是否有效。 (将AppComponent
添加到AppModule
&#39; bootstrap
数组中。
使用HybridUrlHandlingStrategy
来阻止Angular在请求ng1路由时抛出错误。
使用空(&#34;&#34;)模板添加虚拟路径,以防止ng1在请求ng2页面时呈现404页面:
$routeProvider
.when('/some/ng1/path', {template: '<something></something>'})
.when('/some/ng2/path', {template: ''}) // ng2 route
.otherwise({template: '<page-not-found></page-not-found>'});