在Angular Route

时间:2017-06-23 15:24:32

标签: angular typescript angular2-routing

嗯,我在问这个问题之前做了一些研究。

这是我的路径

{ path: 'cart/:productIds', component: CartComponent }

我想在AppComponent中单击下面的购物车时传递productIds。我可以这样做吗?

 goToCart() {
this.router.navigate(['/cart', this.productIds]);}

我试图在这样的购物车组件中的ngOnit中访问这些productIds

this.productIds = route.snapshot.params["productIds"];

我的问题是,这是在两个组件之间传递和访问Int数组的有效方法吗?

我们如何在组件之间维护状态(不确定这是否是正确的单词,我的背景是ASP.NET)?

1 个答案:

答案 0 :(得分:1)

使用 service 将ID数组从一个组件保存到其他组件。将它传递到网址上并不安全。

创建这样的服务,

import { Injectable } from '@angular/core';
@Injectable()
export class AppMessageQueuService {

    myIds: Array<Number>=[];
    constructor() {

    }
    saveIds(produIds:any){
        this.myIds = produIds;
    }
    retrieveIDs(){
        return this.myIds;
    }

}

然后,您可以将此服务注入到两个组件中,并将其保存在第一个组件中,如

this.appMsgService.saveIds(yourIds);

然后在第二个组件中检索为

this.appMsgService.retrieveIDs(yourIds);

你可以注入你的组件,

constructor(
   private appMsgService: AppMessageQueuService
)