在我们的应用程序中,我们存储了大量的小数数据。符合Oracle JET文档,可以根据为各个输入文本控件提供的模式设置十进制数的格式。
但是,有没有方法可以为应用程序中的所有控件设置默认小数模式?你们中有谁解决过类似的难题吗?
发布于 2020-10-07 06:06:41
我不相信这是可能的。<oj-input-number>的converter属性according to the documentation的默认值为new NumberConverter.IntlNumberConverter()。无法覆盖所有组件实例的此默认值。
但是,为了减少代码中Converter实例的数量,您可以做的一件事是在单独的JavaScript模块中创建Converter实例,导出它,然后在希望从中引用它的viewModels中导入绑定。
假设您使用的是默认结构和Typescript,请在src/ts下创建类似于myConverter.ts的内容。内容将是一个导出的Converter实例:
import { IntlNumberConverter } from "ojs/ojconverter-number";
export const myConverter = new IntlNumberConverter({
maximumFractionDigits: 2,
style: "decimal"
});然后,在您的viewModel文件中,您将执行如下操作:
import { IntlNumberConverter } from "ojs/ojconverter-number";
import { ModuleViewModel } from "ojs/ojmodule-element";
import { myConverter } from "../myconverter";
class MyViewModel implements ModuleViewModel {
public converter: IntlNumberConverter;
constructor() {
this.converter = myConverter;
}
}
export = MyViewModel;然后在超文本标记语言中,您可以将converter绑定到输入的converter属性,如下所示:
<oj-input-number converter="[[converter]]"></oj-input-number>当然,这不是所有输入组件实例的默认值,您仍然需要在每种情况下手动绑定转换器实例,但至少您只需要在一个位置维护它,并且它只在内存中存在一次。
https://stackoverflow.com/questions/63982592
复制相似问题