У меня есть шаблон, как показано ниже:
<div *ngFor="let x of inputs">
<input type="text" list="datalist" name="datalist">
<datalist id="datalist">
<option *ngFor = "let i of dataListOptions" [value]="i">{{i-1}}</option>
</datalist>
</div>
И файл TS, подобный этому:
import {Component, OnInit} from '@angular/core';
@Component({
selector: 'app-example',
templateUrl: './example.component.html',
styleUrls: ['./example.component.css']
})
export class ExampleComponent implements OnInit {
dataListOptions: any[] = [1, 2, 3, 4, 5, 6];
constructor() {
}
ngOnInit() {
this.dataListOptions.push(123);
}
}
Когда я обновляю dataListOptions в ngInit () или после того, как он обновляет DOMкак я вижу новые опции, но когда я нажимаю на элемент ввода, я все еще не вижу вновь вставленные данные массива.
Я попытался использовать ChangeDetectorRef после обновления, но все равно не повезло.
Мой вопросэто то, что я должен сделать, чтобы сделать параметры, добавленные после определения dataListOptions, видимыми.Я вижу их, когда осматриваю вид, но не вижу их в «раскрывающемся списке»
![enter image description here](https://i.stack.imgur.com/bwhdb.png)
![enter image description here](https://i.stack.imgur.com/WuWgJ.png)
--- ОБНОВЛЕНИЕ ---
Я только что понял, что ExampleComponent реализует ControlValueAccessor.Я понятия не имею, почему он был добавлен и как он работает, поэтому мне нужно провести еще несколько расследований, потому что похоже, что он каким-то образом участвует в обновлении дисплея или домена
--- UPDATE ---
Вход в цикле