UL, LI: список не обновляется после изменения модели данных источника

Компилятор хочет, чтобы вы это записывали:

private static List<String> list = new ArrayList<String>();

, потому что в противном случае вы могли бы добавить любой тип, который вам нравится, в list, делая создание как new ArrayList<String>() бессмысленным. Java generics - это только функция времени компиляции, поэтому объект, созданный с помощью new ArrayList<String>(), с радостью примет Integer или JFrame элементы, если они назначены ссылке «raw type» List - сам объект ничего не знает о какие типы он должен содержать, только компилятор делает.

1
задан Raj singh 24 March 2019 в 09:46
поделиться

1 ответ

Существует грубый, но эффективный способ внедрения ChangeDetectorRef в компонент и явного вызова метода detectChanges() после обновления содержимого selectedList.

Другая идея - вы мутируете в выбранный список (push(), splice() и тому подобное) или заменяете его новой версией (this.selectedList = [...this.selectedList, newElem].filter(/* some filter */))? Если первое, Angular делает только поверхностное сравнение значения, и мутации, подобные push(), проскальзывают ниже радара.

0
ответ дан mbojko 24 March 2019 в 09:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: