解析值后导航到路由器

时间:2017-01-11 07:48:58

标签: angular angular2-routing

我的购物车有一个立即购买按钮,如果我点击它,它会在后端推送商品详情,退货,然后自动导航到购物车。

请查看我目前的实施情况。

addItem(){
    if(!localStorage.getItem('currentUserToken')){
        this._router.navigate(['/login']);
    } else {
        this.product[0].userId = localStorage.getItem('currentUserId');
        console.log(this.product);
        this._productsService.addToCart(this.product)
            .subscribe((updated) => console.log(updated),
            err => console.log(err));
    }
}

buyNow(){
    this.addItem();
    this._router.navigate(['/cart']);
}

这里的问题是导航比后端推送到数据库并返回到angular2更快。我怎么能等待完成然后导航的决心?

1 个答案:

答案 0 :(得分:1)

您需要在收到后端回复后重定向:

addItem(){
    if(!localStorage.getItem('currentUserToken')){
        this._router.navigate(['/login']);
    } else {
        this.product[0].userId = localStorage.getItem('currentUserId');
        console.log(this.product);
        this._productsService.addToCart(this.product)
            .subscribe((updated) => {
              console.log(updated);
              this._router.navigate(['/cart']);
            },
            err => console.log(err));
    }
}

buyNow(){
  this.addItem();    
}