【问题标题】:DevExtreme component is not available in event parameterDevExtreme 组件在事件参数中不可用
【发布时间】:2019-10-31 16:33:36
【问题描述】:

DevExtreme 组件提供的大多数事件方法都传入一个事件对象,该事件对象将事件触发组件作为子组件。在处理事件方法中,我可以只使用事件参数中的组件,而不必使用@ViewChild 机制引用组件。在大多数情况下,这可以完美地工作。但是 - 如果我使用 DxForm 动态创建表单组件并将以下对象提供给 DxForm 的 items 参数,它将不再起作用:

[{
   dataField: 'postingText',
   editorType: 'dxAutocomplete',
   editorOptions: {
       dataSource: this._listService.PostingTextDataSource,
       onValueChanged: (changedValue) => this.autocompleteChanged(changedValue) 
   }
}]

我的事件处理方法 autocompleteChanged 将被调用并且我得到事件对象。事件对象也有一个子组件。但是这个组件对象不知何故坏了:

如您所见,组件对象没有有用的属性。而且大多数属性都以下划线开头(它们是某种私有/受保护的吗?)。

我做错了什么?真的不可能这么简单地获得组件吗?

【问题讨论】:

    标签: angular devexpress devextreme devextreme-angular


    【解决方案1】:

    你是对的,表单编辑器没有在他们的事件处理程序中提供表单组件。它们只提供关于它们自己的信息(您也可以检查 element 参数 - 它是编辑器的元素,而不是表单的元素)。

    因此,在您的情况下,组件参数是自动完成的实例,您必须使用 ViewChild 装饰器。

    或者,您可以从onInitialized 事件处理程序中获取表单的实例。

    他们在Angular Components - Call Methods 主题中有代码sn-ps。

    【讨论】:

      猜你喜欢
      • 2022-06-14
      • 1970-01-01
      • 2022-07-29
      • 2021-11-13
      • 1970-01-01
      • 2018-12-12
      • 1970-01-01
      • 2020-12-15
      • 1970-01-01
      相关资源
      最近更新 更多