Angular: функция обратного вызова Devexpress dxslectbox onselectionaged не имеет доступа к этому объекту
Я использую угловую версию devexpress. В моей форме у меня есть dxselectbox, он имеет функцию события onselectionaled, чтобы получить выбранное значение. Я могу получить значение, но в функции обратного вызова я не могу получить доступ к другому методу, это глобальная объявленная переменная, которая показывает undefined.
products : any[];
.....
onSelectionChangedCallback(event){
let value = event.selectedItem;
this.test(); // shows undefined
this.products; // shows undefined
}
test(){
alert('');
}
В чем проблема? Пожалуйста помоги
1 ответ
Я думаю, что ваша проблема связана с этим билетом: https://supportcenter.devexpress.com/ticket/details/t487497/dxform-how-to-reach-a-service-within-onvaluechanged-handler-in-angular-2 .
Проблема в том, что внутри функция обратного вызова ссылается на devexpress-widget, а не на ваш угловой компонент.
Исправление будет заключаться в том, чтобы связать
this
к функции обратного вызова, когда вы определяете
onSelectionChangedCallback
к
onselectionchanged
-Мероприятие.
onselectionchanged: onSelectionChangedCallback.bind(this)
Основываясь на предоставленном вами коде, я не знаю, где именно это происходит в вашем случае.
Документация Devextreme: https://js.devexpress.com/Documentation/Guide/Angular_Components/Component_Configuration_Syntax/#Callback_Functions