目标:使 ag-Grid 单元格可编辑为货币控件。
方法:
- 为货币创建了一个自定义指令。
- 创建了一个自定义单元格编辑器,它使用该货币指令。
问题:
在正常情况下,在页面加载时,会加载带有指令(实现 ControlValueAccesor)的控件,并调用 writeValue() 来初始化控件中的值。因此,我使用 writeValue() 显示带有货币 ($) 符号的值。当用户点击控件时,我通过在焦点事件中编写逻辑来显示没有货币符号的值。
现在,使用 ag-Grid,指令不会在页面加载时加载。单击控件时将加载它,因为它包含在单元格编辑器中。因此,在单击/聚焦时,按以下顺序调用以下命令 -
- 焦点事件 - 它将控制值设置为空,因为尚未使用 writeValue 设置任何值。但不久之后, writeValue() 被调用。
- writeValue() - 它将控制值设置为带有 $ 符号的值,这是我不想要的。我想要没有 $ 符号的价值,在焦点上。
那么,如何在指令的焦点事件之前调用 writeValue() 呢?
注意:顺便说一句,单元格编辑器的 2-click 功能工作正常,但我想要 1-click 解决方案,因为我已将焦点设置在afterGuiAttached()
.