Como faço para formatar um campo Número KeystoneJS?
-
23-12-2019 - |
Pergunta
Sua propriedade 'referenceId' que eu gostaria de formato.Aqui está o meu código do modelo:
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();
Existe alguma maneira de declarar a formatação dentro do modelo ?Eu não consigo entender a documentação para esta parte.
Aqui está uma imagem do campo com uma vírgula dentro se, que eu quero me livrar como este é um id de referência, não um valor do tipo.
Solução
Número de campos no KeystoneJS use o numeral.js biblioteca para valores de formatação.
Há uma opção que você pode definir no campo para controlar o formato padrão de seqüência de caracteres, que pode ser qualquer formato válido de que numeral sabe o que fazer com, e.g:
referenceId: { type: Number, format: '0', required: true }
A INTERFACE de Administração será sempre formatar o valor usando a seqüência de caracteres na format
opção.Para remover toda a formatação (por exemplo,delimitador de milhares) apenas definir isso para '0', como no exemplo acima.
Você pode usar o formato de arquivo padrão no seu modelo usando o .format
sublinhado método sobre o item:
div= stockItem._.format()
O carácter de sublinhado método aceita um argumento de seqüência de caracteres que substitui o format
opção definida no Modelo, de modo que você pode processá-lo de forma diferente em seus modelos, por exemplo,
div= stockItem._.format('0,0');
O formato padrão de seqüência de caracteres para os campos de Número é '0,0[.][000000000000]'