簡體   English   中英

通過路由angular2傳遞RouteParams的對象/數組

[英]Object/array passing in the RouteParams via Routing angular2

在angular2中處理路由。 實際上我知道我們可以在路由中使用RouteParams發送鍵/值,但我想在RouteParams中發送整個對象/數組,我不知道是否可能。 有沒有辦法這樣做,如果不是那么任何替代誰知道?

我目前的HTML部分是:

<div *ngFor="#books of getBooks_array #i=index">
    <a [routerLink]="['/IssueBook', {name: books.book_name, isbn: books.book_ISBN,author: books.book_author, price: books.book_price, id: books.book_id, language: books.book_language}]"></a>
</div>

我現在的.ts conatins:

constructor(@Inject(RouteParams) params:RouteParams, @Inject(Http) http:Http){
        this.name= params.get('name');
        this.id= params.get('id');
        this.language= params.get("language");
        this.price= params.get("price");
        this.author= params.get("price");
        this.isbn= params.get("isbn");
}

但我想發送像這樣的RouteParams:

<div *ngFor="#books of getBooks_array #i=index">
<a [routerLink]="['/IssueBook', {data: books}]">Books</a>
</div>

我試圖得到這樣的數據:

constructor(@Inject(RouteParams) params:RouteParams, @Inject(Http) http:Http){
        this.data= params.get('data');
}

但我得到錯誤:

在此輸入圖像描述

你可以在Angular2中將對象傳遞給Url,但實際上並不支持它。 routeParams上的get-Method只返回一個字符串表示,因此你會得到一個像“[Object]”這樣的字符串。 如果要訪問傳遞的數據,則需要使用params-Property:

constructor(@Inject(RouteParams) params:RouteParams, @Inject(Http) http:Http){
    this.data= params.params.data;
}

但要注意,這只有在您第一次呼叫路線時才能正常工作。 如果使用不同的數據調用路徑params.params.data ,可能會發生params.params.data返回舊數據,盡管您將新數據放入路徑中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM