Angular 2 ES5 cheat sheet说要这样做:
var MyComponent = ng.router.RouteConfig([
{ path: '/:myParam', component: MyComponent, as: 'MyCmp' },
{ path: '/staticPath', component: ..., as: ...},
{ path: '/*wildCardParam', component: ..., as: ...}
]).Class({
constructor: function() {}
});
但是,我不知道如何在该类上指定 @Component
内容,以便我可以实际实例化它。例如,
ng.router.RouteConfig([...]).Component({})
抛出异常,因为 .RouteConfig
的结果没有 .Component
方法。同样,.Component
的结果没有 .RouteConfig
方法。如何进行此设置?
最佳答案
我已经完成了以下方法,看起来效果很好。
app.AppComponent = ng.core
.Component({
selector: 'the-app',
template: `
<h1>App!!!</h1>
<a [routerLink]="['Children']">Children</a>
<a [routerLink]="['Lists']">Lists</a>
<router-outlet></router-outlet>
`,
directives:[
app.ListsComponent,
app.ChildrenComponent,
ng.router.ROUTER_DIRECTIVES
]
})
.Class({
constructor: [ng.router.Route, function(_router) {
this._router = _router; // use for navigation, etc
}]
});
app.AppComponent = ng.router
.RouteConfig([
{ path: '/', component:app.ListsComponent, name:'Lists' },
{ path: '/children', component:app.ChildrenComponent, name:'Children' }
])(app.AppComponent);
由于 ng.core.Component
和 ng.router.RouteConfig
都是装饰器,您可以编写:
app.AppComponent = ng.core.Class(...);
app.AppComponent = ng.core.Component(...)(app.AppComponent);
app.AppComponent = ng.router.RouteConfig(...)(app.AppComponent);
希望有帮助。
关于ES5 中的 Angular 2 路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34604160/