在 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
可能会返回旧数据。关于angular - 通过 Routing angular2 传入 RouteParams 的对象/数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34432886/