首页 > 解决方案 > 如何在角度中使用点击和地图

问题描述

我从后端获得一个 url,我想从我的 angular 项目中重定向到它,但不知道如何去做。

 public createPaymentMethod(paymentMethodDto: any): Observable<any> {
        return this.http.post<any>(ConfigService.Configuration.apiUrl + `/payments`, paymentMethodDto)
            .pipe(
                tap((result: TpayData) => console.log(result)),
// in the result log i have a field with name 3durl and clientAUth etc
                map(res => res._3dsUrl ),
                tap(_3dUrl => console.log(_3dUrl))
            );
    }

async addPaymentMethod(): Promise<void> {
        const encrypted = this.encrypt();
        this.paymentForm.controls['creditCard'].setValue(encrypted);
        const loader = await this.loaderService.showLoader();
        this.paymentApiService.createPaymentMethod(this.paymentForm.value)
            .subscribe((payment) => {
                console.log("expect" + payment)
                    this.close(payment);
                    this.loaderService.successMessage();
                },
                (error) => this.loaderService.errorApiMessage(error)
            );
        await loader.dismiss();
    }

我要检查的是 3duRl 是否不为空,然后重定向到这个 url,如果它为空,那么我将处理返回的响应中的其他值。目前我不确定如何将 url 带入异步 addPaymentMethod 并在可用时重定向到它

标签: angulardictionary

解决方案


在您的构造函数中,请导入 Angular 提供的路由器服务:

private router: Router

然后:

async addPaymentMethod(): Promise<void> {
        const encrypted = this.encrypt();
        this.paymentForm.controls['creditCard'].setValue(encrypted);
        const loader = await this.loaderService.showLoader();
        this.paymentApiService.createPaymentMethod(this.paymentForm.value)
            .subscribe((payment) => {
                  If(payment) { 
                     this.router.navigateByUrl(payment)
                     console.log("expect" + payment)
                     this.close(payment);
                     this.loaderService.successMessage();
                  }
               },
                (error) => this.loaderService.errorApiMessage(error)
            );
         await loader.dismiss();
    }

推荐阅读