[英]Angular doesn't concatenate value in routerLink
問題很簡單,我有這個組件,它獲取我保存在 sessionSotrage 中的最后搜索的項目,它是一個 ListItem 對象數組:
export class SearchlistComponent {
results = JSON.parse(<string>sessionStorage.getItem("lastSearch"));
}
而 html 只是用相應的鏈接打印它們以通過路由訪問頁面:
<ul class="list-group mt-3">
<li class="list-group-item" *ngFor="let result of results">
<div *ngIf="result.itemType == 'hospital'">
<div routerLink='/hospital/{{result.itemId}}'>
<h4>{{result.itemName}}</h4>
<h5>{{result.itemLocation}}</h5>
</div>
</div>
<div *ngIf="result.itemType == 'ward'">
<div routerLink='/ward/{{result.itemId}}'>
<h4>{{result.itemName}}</h4>
<h5>{{result.itemLocation}}</h5>
</div>
</div>
<div *ngIf="result.itemType == 'medic'">
<div routerLink='/medic/{{result.itemId}}'>
<h4>{{result.itemName}}</h4>
<h5>{{result.itemLocation}}</h5>
<h6 *ngIf="result.itemType == 'medic'">{{result.itemDescription}}</h6>
</div>
</div>
</li>
當訪問頁面時,列表會像往常一樣打印出來,但是當我點擊我想要訪問頁面的項目時,路由沒有附加值,所以我得到的不是'/hospital/hospitalId'而是'/醫院'。
只有當我使用 SpringBoot 而不是使用 ng serve 運行站點時才會發生這種情況。 我已經檢查過它是否是一個解析錯誤,它不是,數據被正確存儲並相應地打印出來。 可能是什么問題?
RouterLink
需要一個數組作為值,例如: [routerLink]="['user', user.id, 'details']"
= "/user/8/details" 。
<ul class="list-group mt-3">
<li class="list-group-item" *ngFor="let result of results">
<div *ngIf="result.itemType == 'hospital'">
<div [routerLink]="['/hospital', result.itemId]">
<h4>{{result.itemName}}</h4>
<h5>{{result.itemLocation}}</h5>
</div>
</div>
<div *ngIf="result.itemType == 'ward'">
<div [routerLink]="['/ward', result.itemId]">
<h4>{{result.itemName}}</h4>
<h5>{{result.itemLocation}}</h5>
</div>
</div>
<div *ngIf="result.itemType == 'medic'">
<div [routerLink]="['/medic', result.itemId]">
<h4>{{result.itemName}}</h4>
<h5>{{result.itemLocation}}</h5>
<h6 *ngIf="result.itemType == 'medic'">{{result.itemDescription}}</h6>
</div>
</div>
</li>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.