【发布时间】:2018-09-19 04:54:14
【问题描述】:
我有 Angular 5 基本初级应用程序 只有 5 个组件
我的路由和链接如下所示
//copied from app.module.ts
const appRoutes:Routes = [
{path:'',component:HomeComponent},
{path:'items/:cat',component:ItemsComponent},
{path:'itemdetail/:id',component:ItemdetailComponent},
{path:'settings',component:SettingsComponent},
];
//copied from navbar.component.html
<ul>
<li><a [routerLink]="['/']">Home</a></li>
<li><a [routerLink]="['/items/8']">Rashion</a></li>
<li><a [routerLink]="['/items/2']">Vegitables</a></li>
<li><a [routerLink]="['/items/3']">Fruits</a></li>
<li><a [routerLink]="['/items/7']">Other</a></li>
<li><a [routerLink]="['/items/5']">Sweets</a></li>
<li><a [routerLink]="['/settings']">Settings</a></li>
</ul>
//copied from items.component.ts
ngOnInit(){
this.cat = this.route.snapshot.params['cat'];
this.itemsSrv.getItems(this.cat)
.subscribe((data)=>{
this.items=data;
});
}
链接只有在指向不同的组件时才有效,
意味着我可以从主页导航到/items/2
但是当我在项目组件中时,我可以导航到 /items/any-parameter
虽然从项目我可以去主页或设置组件。
简而言之,即使参数不同,它现在也可以导航到相同的组件。
我注意到一件事,网址发生了变化,但页面内容与旧页面相同,没有重新加载新网址:(
【问题讨论】:
-
详细说明您的问题。我没听懂你在说什么
-
不要使用特定的参数,但像这样的可选参数:[routerLink]=['/items', {param1:'test'}] 你的路线看起来像这样:/items;param1=test。您只需要在路由上指定不带参数的“项目”
-
@Gilsdav 我试过你的方法,它说:无法匹配任何路线。 URL 段:'items/2'
-
通过更好地阅读您的问题,我的回答不是您所需要的。页面是否与更改参数之前相同?你怎么拿身份证?我认为组件可能没有重新创建,而只会给你一个参数改变的事件。你订阅参数了吗?
-
items使用动态参数 (1,2...9) 调用 Web 服务的组件,它根据这些参数返回fruits、sweets、vegitables等列表跨度>
标签: angular routing navigation