在ag-Grid单元格编辑器中使用自定义指令时,在writeValue之前调用focus事件

问题描述

目标:使ag-Grid单元格可作为货币控件进行编辑。

方法

  1. 为货币创建了自定义指令。
  2. 创建了一个使用该货币指令的自定义单元格编辑器。

问题

在正常情况下,在页面加载时,将加载带有指令(实现ControlValueAccesor)的控件,并调用writeValue()来初始化控件中的值。因此,我正在使用writeValue()来显示带有currency($)符号的值。当用户单击控件时,我通过在焦点事件中编写逻辑来显示不带货币符号的值。

现在,使用ag-Grid,指令不会在页面加载时加载。单击控件时,它将加载,因为它包含在单元格编辑器中。因此,在单击/聚焦时,将按以下顺序调用以下内容-

  1. focus事件-由于尚未使用writeValue设置任何值,因此它将控制值设置为null。但是不久之后,将调用writeValue()。
  2. writeValue()-它将控制值设置为带有$符号的值,我不需要。我要重点放在没有$符号的值。

那么,如何在指令的焦点事件之前调用writeValue()?

注意:顺便说一句,单元格编辑器的2键单击功能工作正常,但我希望1键单击解决方案,因为我将焦点放在afterGuiAttached()中的控件上。 / p>

解决方法

我可以使用mongodb+srv://<username>:<password>@testcluster.i2ddc.mongodb.net/data?retryWrites=true&w=majority来找出解决方案:

setTimeout

找不到更好的解决方案。让我知道你们是否知道或找到任何更好的解决方案。谢谢。