Angular 角度:基于单选按钮选择指定路线

Angular 角度:基于单选按钮选择指定路线,angular,typescript,angular-ui-router,components,ngoninit,Angular,Typescript,Angular Ui Router,Components,Ngoninit,我使用单选按钮向用户显示两个选项,根据它们的选择,它们被路由到两个组件之一(每个单选按钮一个)。任何关于如何根据其无线电选择路由到所需目的地的建议/链接 模板: <app-radio-button formControlName="collectionOption" [groupName]="'collectionOption'" [radioOptions]="radioOptions$ | async" ></app-radio-button&

我使用单选按钮向用户显示两个选项,根据它们的选择,它们被路由到两个组件之一(每个单选按钮一个)。任何关于如何根据其无线电选择路由到所需目的地的建议/链接

模板:

<app-radio-button
     formControlName="collectionOption"
     [groupName]="'collectionOption'"
     [radioOptions]="radioOptions$ | async"
></app-radio-button> 

您正在将
radioOptions
的集合传递给应用程序单选按钮组件。我将向您的
radioOption
对象添加
url
属性。当调用
onContinueClick
时,请使用
。在
radioOptions
集合中查找(…)
,以获取与用户选择的值相对应的
radioOption
。将
radioOption.url
传递给
this.router.navigateByUrl
。基本上,您希望它是数据驱动的,所以在radioOptions对象中,我向每个集合添加了url:
url:routeOne
。您能否建议在继续单击时如何查找
find
?任何建议都将不胜感激!
ngOnInit() {
    this.form = this.formBuilder.group({
      collectionOption: ['', Validators.compose([Validators.required])],
    });

    this.form.valueChanges.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {
      if (this.form.valid) {
        this.showGlobalError = false;
      }
    });
  }

  onContinueClick() {
    this.isSubmitted = true;

    if (this.form.valid || this.form.controls.collectionOption.value === this.postCard) {
       this.router.navigateByUrl(this.radioOptionOneRoute);  
    } else {
      this.showGlobalError = true;
    }
  }