【问题标题】:Default decimal format Oracle JETt默认十进制格式 Oracle JETt
【发布时间】:2020-09-20 18:59:19
【问题描述】:

在我们的应用程序中,我们存储了大量的十进制数据。根据 Oracle JET 文档,可以根据为单个输入文本控件提供的模式来格式化十进制数字。

但是有没有办法为应用程序中的所有控件设置默认十进制模式? 有没有人解决过类似的困境?

【问题讨论】:

    标签: oracle-jet


    【解决方案1】:

    我不相信这是可能的。 <oj-input-number>converter 属性的默认值according to the documentationnew NumberConverter.IntlNumberConverter()。无法为所有组件实例覆盖此默认值。

    但是,为了减少代码中 Converter 实例的数量,您可以做的一件事是在单独的 JavaScript 模块中创建 Converter 实例,将其导出,然后将绑定导入您的视图模型中希望从中引用它。

    假设您使用默认结构和 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;
    

    然后在您的 HTML 中,您可以将 converter 绑定到您输入的 converter 属性,如下所示:

    <oj-input-number converter="[[converter]]"></oj-input-number>
    

    这当然不是所有输入组件实例的默认值,你仍然需要在每种情况下手动绑定转换器实例,但至少你只需要在一个地方维护它,它只在内存中存在一次。

    【讨论】:

      猜你喜欢
      • 2020-04-12
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多