【问题标题】:Angular : Devexpress dxslectbox onselectionchanged callback function not access the this objectAngular:Devexpress dxslectbox onselectionchanged 回调函数无法访问此对象
【发布时间】:2018-04-30 07:44:16
【问题描述】:

我正在使用 angular devexpress 版本。在我的表单中,我有dxselectbox,它有onselectionchanged 事件函数来获取选定的值。我可以获取该值,但在回调函数中我无法访问另一个方法是全局声明的变量,它显示为未定义。

products : any[];
.....
onSelectionChangedCallback(event){
 let value = event.selectedItem;
this.test(); // shows undefined
this.products; // shows undefined
}

test(){
alert('');
}

有什么问题?请帮忙

【问题讨论】:

  • this.test() 是说 - 调用位于此方法中的名为 test 的方法。我认为如果你在没有这个的情况下调用那个方法就足够了。另外,你为什么不打开开发者控制台并在那里放置几个断点,看看发生了什么。
  • 您应该能够调用组件中的任何方法,因为 onSelectionChangedCallback 和 test 在同一范围内。您没有对“this.products”属性做任何事情。你在哪里看到未定义?

标签: angular devextreme devextreme-angular


【解决方案1】:

我认为您的问题与这张票有关:https://supportcenter.devexpress.com/ticket/details/t487497/dxform-how-to-reach-a-service-within-onvaluechanged-handler-in-angular-2

问题在于回调函数 this 内部引用的是 devexpress-widget 而不是您的 angular-component。

当您将onSelectionChangedCallback 分配给onselectionchanged-Event 时,解决方法是将this 绑定到回调函数。

onselectionchanged: onSelectionChangedCallback.bind(this)

根据您提供的代码,我不知道在您的情况下到底发生在哪里

Devextreme 文档:https://js.devexpress.com/Documentation/Guide/Angular_Components/Component_Configuration_Syntax/#Callback_Functions

【讨论】:

    猜你喜欢
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 2020-10-10
    • 2021-05-12
    • 2021-03-16
    相关资源
    最近更新 更多