[英]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.