Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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

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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
Html onChange on下拉列表不适用于窗体控件_Html_Angular_Typescript_Angular10 - Fatal编程技术网

Html onChange on下拉列表不适用于窗体控件

Html onChange on下拉列表不适用于窗体控件,html,angular,typescript,angular10,Html,Angular,Typescript,Angular10,我的下拉列表有问题。我有几个值在里面,喜欢使用选定的一个。这是我的代码,目前不起作用。FormControll始终为空: app.component.html <custom-dropdown [formControl]="majorAreaCtrl" (onChange)="onChange()" [label]="'EXPERTS.MAJOR_AREAS'|translate"> <custom-dro

我的下拉列表有问题。我有几个值在里面,喜欢使用选定的一个。这是我的代码,目前不起作用。
FormControll
始终为空:

app.component.html

  <custom-dropdown [formControl]="majorAreaCtrl" (onChange)="onChange()" [label]="'EXPERTS.MAJOR_AREAS'|translate">
    <custom-dropdown-item *ngFor="let area of areas" [value]="area.key">
      {{ area }}
    </custom-dropdown-item>
  </custom-dropdown>

有人看到我的错误了吗?提前谢谢你

实际上不需要
onChange
侦听器(由
[formControl]
绑定处理)。 但是,这需要
自定义下拉列表
组件实现接口


如果是这种情况,您应该能够通过订阅
this.majorAreaCtrl.valueChanges
Observable(例如)来响应更改。 尽管没有自定义组件,但这是一个很好的解决方案


如果您的组件没有实现
ControlValueAccessor
,我(以及这里的许多其他人)将很乐意帮助您实现它。

我相信值会在下一个刻度上发生变化,因此理论上:
setTimeout(()=>{console.log(this.majorAreaCtrl.value);},0)this.majorAreaCtrl.valuesChanges
时,我的控制台中没有任何内容。或者我的意思是不超过
EventEmitter\uu isScalar:false,observators:Array(0),closed:false,isStopped:false,hasError:false,…}
this.majorAreaCtrl.valueChanges
实际上是一个可观察的,所以为了对它的更改做出反应,您需要订阅它(在某个时刻)。为了快速测试它是否工作,请尝试
this.majorAreaCtrl.valueChanges.subscribe(console.log)
。这将记录每次可观察到的“发射”值。
export class ExpertsComponent implements OnInit {

  readonly majorAreas = MajorArea
  readonly areas = Object.values(this.majorAreas)
  readonly majorAreaCtrl = new FormControl()

  ngOnInit(): void {
    console.log(this.majorAreas, this.allExperts)
  }

  onChange() {
    console.log(this.majorAreaCtrl.value)
  }
}