ngValue игнорируется при использовании внутри ng-содержимого в Angular

Я создал пользовательский элемент управления, скажем, my-select-input в Angular, который обертывает исходный выбор select. Шаблон выглядит так.

<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);
    });
  }

Компонент также расширяет класс, который реализует controlvalueaccessor.

Когда я пытаюсь использовать компонент, как это:

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

ngValue полностью игнорируется, и значение, которое я получаю, представляет собой текст между тегом параметров. Я использую ngValue для хранения объекта внутри него. Не уверен, что здесь проблема. Любая помощь приветствуется.

Элемент управления отлично работает с атрибутом значения вместо ngValue.

Аналогичная проблема - https://github.com/angular/angular/issues/22374

0 ответов

Другие вопросы по тегам