Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度2-用于在组中选择组件的函数_Javascript_Angular_Ionic2 - Fatal编程技术网

Javascript 角度2-用于在组中选择组件的函数

Javascript 角度2-用于在组中选择组件的函数,javascript,angular,ionic2,Javascript,Angular,Ionic2,我想知道如何解决我现在遇到的问题。在注册页面中,我有两个按钮,它们是组件,其中每个按钮都显示要选择的性别 问题是,我需要创建一个逻辑来理解它们中的每一个被选中。记住,我还有一个按钮给那些不想回答的人。我可以很容易地用解决它,但我真的需要使用按钮,正如我下面的布局所期望的那样 你们对我如何解决这个问题有什么建议吗?谢谢 HTML: 你是吗: 我不想回答这个问题 继续 您可以创建一个数组并跟踪所选的数组: <ion-row > <ion-col> <btn

我想知道如何解决我现在遇到的问题。在注册页面中,我有两个按钮,它们是组件
,其中每个按钮都显示要选择的性别

问题是,我需要创建一个逻辑来理解它们中的每一个被选中。记住,我还有一个按钮给那些不想回答的人。我可以很容易地用
解决它,但我真的需要使用按钮,正如我下面的布局所期望的那样

你们对我如何解决这个问题有什么建议吗?谢谢

HTML:


你是吗:
我不想回答这个问题
继续

您可以创建一个数组并跟踪所选的数组:

<ion-row >
  <ion-col>
    <btn-gender [text]="textMale" [imageURL]="imageMale" [(ngModel)]="genders" (click)="activate('male')"></btn-gender>
  </ion-col>
  <ion-col>
    <btn-gender [text]="textFemale" [imageURL]="imageFemale" [(ngModel)]="genders" (click)="activate('female')"></btn-gender>
  </ion-col>
</ion-row>

activate(gender: string): void {

  // Second condition included as per OP's own solution
  if (this.genders.indexOf(gender) === -1 && !this.genders.length) {
    this.genders.push(gender);
  }
  else {
    this.genders.splice(this.genders.indexOf(gender), 1);
  }
}

激活(性别:字符串):无效{
//根据OP自己的解决方案包括第二个条件
if(this.genders.indexOf(gender)==-1&&!this.genders.length){
这个。性别。推(性别);
}
否则{
this.genders.splice(this.genders.indexOf(gender),1);
}
}

它就像一个符咒!!!感谢@Chrillewoodz,我在上面的代码中唯一更改的是添加一行来检查数组是否为空,因为它添加了两个选项
activate(genders:string):void{if(this.genders.indexOf(gender)=-1&&this.genders.length==0{this.genders.push(gender);}否则{this.genders.splice(this.genders.indexOf(gender),1);}
Sweet,如果答案有用,别忘了接受。我将更新答案以包含您的修复。
<ion-row >
  <ion-col>
    <btn-gender [text]="textMale" [imageURL]="imageMale" [(ngModel)]="genders" (click)="activate('male')"></btn-gender>
  </ion-col>
  <ion-col>
    <btn-gender [text]="textFemale" [imageURL]="imageFemale" [(ngModel)]="genders" (click)="activate('female')"></btn-gender>
  </ion-col>
</ion-row>

activate(gender: string): void {

  // Second condition included as per OP's own solution
  if (this.genders.indexOf(gender) === -1 && !this.genders.length) {
    this.genders.push(gender);
  }
  else {
    this.genders.splice(this.genders.indexOf(gender), 1);
  }
}