在Angular中的ng-content中使用时,将忽略ngValue

时间:2018-06-05 09:40:28

标签: angular angular-components controlvalueaccessor

我在Angular中创建了一个自定义控件,如 my-select-input ,它包含了原生选择输入。模板看起来像这样。

<div class="select-container">
<select
    class="form-control"
    [ngModel]="value"
    (ngModelChange)="value$.next($event)">
    <ng-content></ng-content>
  </select>
</div>

my-select-input 组件如下所示。

ngOnInit() {
    this.value$ = new BehaviorSubject(this._value);
    this.valueSubscription = this.value$.subscribe((value) => {
      this._value = value;
      this.onChangeCallback(this._value);
    });
  }

Component还扩展了一个实现controlvalueaccessor的类。

当我尝试使用这样的组件时:

<my-select-input formControlName="select">
      <option *ngFor="let item of selectValues" [ngValue]="item">{{item.label}}</option>
</my-select-input>

ngValue被完全忽略,我得到的值是options标签之间的文本。我使用ngValue在其中存储对象。不知道这里有什么问题。任何帮助表示赞赏。

使用value属性而不是ngValue,控件完全正常。

类似问题 - https://github.com/angular/angular/issues/22374

0 个答案:

没有答案