Как мне отформатировать числовое поле в KeystoneJS?
-
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, от которого я хочу избавиться, поскольку это идентификатор ссылки, а не значение такого рода.
Решение
Числовые поля в Ключевые слова используйте 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]'