Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.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 角度7,如何通过选择其他ng选择值来控制ng选择选项?_Javascript_Angular - Fatal编程技术网

Javascript 角度7,如何通过选择其他ng选择值来控制ng选择选项?

Javascript 角度7,如何通过选择其他ng选择值来控制ng选择选项?,javascript,angular,Javascript,Angular,所以我的代码中有两个ng select,如果我选择第一个ng select值,我想从第二个ng select中隐藏相同的select选项。但我不知道如何控制它。我想将Jquery与一起使用,但没有机会。 sourceLangCodeList和targetLangCodeList都有值[EN,KR] 所以我想尝试的是,一旦我选择了其中一个ng select的值,隐藏第二个ng select的相同值。请帮忙 <td> <div class="f

所以我的代码中有两个ng select,如果我选择第一个ng select值,我想从第二个ng select中隐藏相同的select选项。但我不知道如何控制它。我想将Jquery与一起使用,但没有机会。 sourceLangCodeList和targetLangCodeList都有值[EN,KR] 所以我想尝试的是,一旦我选择了其中一个ng select的值,隐藏第二个ng select的相同值。请帮忙

<td>
              <div class="form-group">
                <ng-select
                  id="sourceLangSelect"
                  bindLabel="language"
                  bindValue="language"
                  formControlName="sourceLangCode"
                  [items]="sourceLangCodeList"
                  (change)="onChange($event)"
                ></ng-select>
              </div>
            </td>
            <td></td>
            <td>
              <div class="form-group">
                <ng-select
                  id="targetLangSelect"
                  bindLabel="language"
                  bindValue="language"
                  formControlName="targetLangCode"
                  [items]="targetLangCodeList"
                ></ng-select>
              </div>
            </td>


请将ngModel添加到slectedSoureclang,并在更改后过滤targetLangCodeList

                 <ng-select
              id="sourceLangSelect"
              bindLabel="language"
              bindValue="language"
              formControlName="sourceLangCode"
              [items]="sourceLangCodeList"
              (change)="onChange($event)"
              [(ngModel)]="selectedSourceLang"
            ></ng-select>

请将ngModel添加到slectedSoureclang,并在targetLangCodeList中进行更改筛选

                 <ng-select
              id="sourceLangSelect"
              bindLabel="language"
              bindValue="language"
              formControlName="sourceLangCode"
              [items]="sourceLangCodeList"
              (change)="onChange($event)"
              [(ngModel)]="selectedSourceLang"
            ></ng-select>

既然你用的是反应形式,我就用反应形式回答。 查看完整的代码在

模板:

<div class="form-group" [formGroup]="formGroup">
    <ng-select id="sourceLangSelect" bindLabel="language" bindValue="language" formControlName="sourceLangCode"
        [items]="sourceLangCodeList"></ng-select>
    <ng-select id=" targetLangSelect" bindLabel="language" bindValue="language" formControlName="targetLangCode"
        [items]="targetLangCodeList"></ng-select>
</div>
TLDR

  • 使用表单组创建两个您显然正在使用的formControlName
  • 在ngOnInit中,订阅formGroup.controls['sourceLangCode']的值更改
  • 值更改时,过滤在targetLangCode中选择的语言
  • 在Ngondestory,别忘了取消订阅

    • 既然您使用的是反应表单,我将以反应表单的方式回答。 查看完整的代码在

      模板:

      <div class="form-group" [formGroup]="formGroup">
          <ng-select id="sourceLangSelect" bindLabel="language" bindValue="language" formControlName="sourceLangCode"
              [items]="sourceLangCodeList"></ng-select>
          <ng-select id=" targetLangSelect" bindLabel="language" bindValue="language" formControlName="targetLangCode"
              [items]="targetLangCodeList"></ng-select>
      </div>
      
      TLDR

      • 使用表单组创建两个您显然正在使用的formControlName
      • 在ngOnInit中,订阅formGroup.controls['sourceLangCode']的值更改
      • 值更改时,过滤在targetLangCode中选择的语言
      • 在Ngondestory,别忘了取消订阅

      ``看起来您在与formControlName相同的表单字段上使用了ngModel。Angular v6中已不推荐使用ngModel输入属性和ngModelChange事件以及反应式表单指令,Angular v7中将删除这些支持。有关这方面的更多信息,请参阅此处的API文档:`` Angular7不再支持ngModel,因此我没有完全使用它,但您的更改事件有帮助!谢谢看起来您在与formControlName相同的表单字段上使用了ngModel。Angular v6中已不推荐使用ngModel输入属性和ngModelChange事件以及反应式表单指令,Angular v7中将删除这些支持。有关这方面的更多信息,请参阅此处的API文档:`` Angular7不再支持ngModel,因此我没有完全使用它,但您的更改事件有帮助!谢谢@RahulCv使用(更改)事件绑定得到了一个很好的答案。但由于您使用的是被动formControls,请参阅我的答案,这可能对您的情况有所帮助。@RahulCv使用(更改)事件绑定得到了一个很好的答案。但由于您使用的是被动formControls,请查看我的答案,这可能对您的情况有所帮助。谢谢您的友好回答!我也要试试这个。没问题。任何时候都可以,谢谢你的回答!我也要试试这个。没问题。任何时候都可以找一个同事