У меня есть один образец с интерполяцией. Он правильно показывает раскрывающиеся значения при использовании любого одного события, как показано ниже:
sample: click me
фрагмент кода:
Здесь я добавил событие (open) = "onOpen ()"
<ejs-dropdownlist
(open) = "onOpen()"
required id = "ddlApp" name = "ddlApp" [dataSource]='appDataSource' [allowFiltering]='true'
[itemTemplate] = "itemTemplate" [valueTemplate] = "valueTemplate" [(ngModel)] = "dropdownlApp"
#ddlApp = "ngModel" [placeholder]='ddlAppText' [fields]='fields'>
sample 2: click me
В этом примере я бы не добавил никаких событий, в этом случае интерполяция не работает.
Фрагмент кода:
<ejs-dropdownlist
required id = "ddlApp" name = "ddlApp"
[dataSource]='appDataSource' [allowFiltering]='true'
[itemTemplate] = "itemTemplate" [valueTemplate] = "valueTemplate"
[(ngModel)] = "dropdownlApp" #ddlApp = "ngModel"
[placeholder]='ddlAppText' [fields]='fields'>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Просто удалите changeDetection: ChangeDetectionStrategy.OnPush из декоратора @Component, ваш второй образец будет работать
Декоратор компонентов должен читаться как
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
Свяжите вам массив объектов в ngOnInit(), это правильный способ привязки и подходящее время для привязки значений - Спасибо, удачного кодирования !!
В соответствии с вашим кодом changeDetection: ChangeDetectionStrategy.OnPush будет проверять только один раз при создании экземпляра компонента, поэтому это вызывает проблему, и ваша модель не обновляется после создания экземпляра компонента, если вы хотите changeDetection, затем используйте changeDetection: ChangeDetectionStrategy.Default, это будет проверять всегда, когда есть изменение в ваших свойствах
Если мы удалим ChangeDetectionStrategy.OnPush из компонента, этот компонент будет проверяться на любые изменения в любом компоненте приложения. Если мы работаем над производительным приложением, мы должны оставить OnPush. Добавление события (open) = "0" должно быть достаточным для обновления шаблона при открытии раскрывающегося списка. Angular автоматически установит DropDownListComponent для проверки, так что шаблон, прикрепленный к его представлению, также будет проверяться.
@yurzui, у меня такой же вопрос. почему мне нужно изменить onpush на значение по умолчанию. если я использую по умолчанию, это вызовет обнаружение изменений, если произойдут какие-либо изменения, но если мы используем onpush, это вызовет обнаружение изменений при изменении значения
ChangeDetectionStrategy.OnPush - единственное, что заставило ваше изменение не работать в примере 2, поэтому я только что предложил удалить его для этого сценария - архитектура приложения основана на ваших потребностях - проблема заключалась в добавлении ChangeDetectionStrategy, если вы хотите то же самое. стратегию вы можете использовать тот же образец
Спасибо за ответ, но моя проблема в том, что когда я использую changeDetection, интерполяция не работает