gpt4 book ai didi

angularjs - Angular2 rc1 - @Routes 声明的顺序是否重要(可选参数)?

转载 作者:搜寻专家 更新时间:2023-10-30 21:53:16 25 4
gpt4 key购买 nike

尝试新的 Angular 2.0.0-rc.1,没有被贬低的东西。我希望组件可以使用或不使用路径参数。由于我无法弄清楚可选参数的语法(例如 /detail/:id?/detail[/:id] 不起作用)我被留下了可以选择声明单独的路线。根据我声明 @Routes 的顺序,我遇到了异常

为什么这样好:

@Routes([
{ component: HeroDetailComponent, path: '/detail/:id' },
{ component: HeroDetailComponent, path: '/detail' }
])

这不是:

@Routes([
{ component: HeroDetailComponent, path: '/detail' },
{ component: HeroDetailComponent, path: '/detail/:id' }
])

当访问参数化的 url: localhost/detail/1 我得到一个异常:

EXCEPTION: Error: Uncaught (in promise): Component 'HeroDetailComponent' does not have route configuration

供引用的组件类:

import {OnActivate, RouteSegment, Router} from "@angular/router"; 
import {Component, Input} from '@angular/core';
import {Hero} from '../model/hero';
import {HeroService} from "../model/hero.service";

@Component({
templateUrl: 'hero-detail.component.html',
selector: 'my-hero-detail'
})

export class HeroDetailComponent implements OnActivate{
constructor(private heroService: HeroService,
private router: Router){}
@Input()
hero: Hero = new Hero();

routerOnActivate(curr: RouteSegment) {
if(curr.getParam('id') == null)
return;

let id = +curr.getParam('id');
this.heroService.get(id)
.then(hero => this.hero = hero);
}
}

最佳答案

是的,顺序很重要。更具体的路线应该放在第一位,不太具体的路线最后。

这不是故意的,而是当前 @angular/router 的限制。

目前尚不清楚他们将如何推进路由器的发展。如果您刚刚开始从 @angular/router-deprecated 迁移,最好等到路由器策略明确后再迁移。

关于angularjs - Angular2 rc1 - @Routes 声明的顺序是否重要(可选参数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37642896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com