Как мне отформатировать числовое поле в KeystoneJS?

StackOverflow https://stackoverflow.com//questions/22064275

  •  23-12-2019
  •  | 
  •  

Вопрос

Это свойство 'referenceId', которое я хотел бы отформатировать.Вот мой модельный код:

var keystone = require('keystone'),
    Types = keystone.Field.Types;

var Stock = new keystone.List('Stock', {
    map: { name: 'adminDisplayTitle' },
    autocreate: true
});

Stock.add({
    adminDisplayTitle: { type: String, required: true , default: 'Title to show in this Admin UI'},
    referenceId: { type: Number, required: true },
    country: { 
        type: Types.Select, 
        options: [
            { value: 'sv', label: 'Sweden' },
            { value: 'fi', label: 'Finland' },
            { value: 'dk', label: 'Denmark' }
        ], 
        required: true
    },
    author: { type: Types.Relationship, ref: 'User' },
    rating: { type: String, required: true },
    rate: { type: Number, required: true },
    published: { type: Boolean, default: false }
});

Stock.defaultColumns = 'adminDisplayTitle, referenceId, author, createdAt';

Stock.register();

Есть ли какой-нибудь способ объявить форматирование внутри модели?Кажется, я не могу понять документацию по этой части.

Вот изображение поля с запятой внутри if it, от которого я хочу избавиться, поскольку это идентификатор ссылки, а не значение такого рода.

enter image description here

Это было полезно?

Решение

Числовые поля в Ключевые слова используйте numeral.js библиотека для форматирования значений.

Есть опция, которую вы можете установить в поле для управления строкой формата по умолчанию, которая может быть любым допустимым форматом, с которым numeral знает, что делать, например:

referenceId: { type: Number, format: '0', required: true }

Пользовательский интерфейс администратора всегда будет форматировать значение, используя строку в format вариант.Чтобы удалить все форматирование (например,разделитель тысяч) просто установите это значение равным "0", как в примере выше.

Вы можете использовать формат по умолчанию в своем шаблоне, используя .format метод подчеркивания на предмете:

div= stockItem._.format()

Метод подчеркивания принимает строковый аргумент, который переопределяет format параметр, заданный в модели, позволяет вам отображать его по-разному в ваших шаблонах, например

div= stockItem._.format('0,0');

Строка формата по умолчанию для числовых полей имеет следующий вид '0,0[.][000000000000]'

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top