Come faccio a formattare un campo numerico in Keystonejs?
-
23-12-2019 - |
Domanda
È la proprietà "Riferimento" che vorrei formattare.Ecco il mio modello modello:
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();
.
C'è un modo per dichiarare la formattazione all'interno del modello?Non riesco a capire la documentazione per questa parte.
Ecco un'immagine del campo con una virgola dentro se è, che voglio sbarazzarmi perché questo è un ID di riferimento, non un valore di questo tipo.
Soluzione
campi numeri in KeystoneJS Usa il numeral.js libreria per la formattazione dei valori.
C'è un'opzione che è possibile impostare sul campo per controllare la stringa di formattazione predefinita, che può essere qualsiasi formato valido che il numero sa cosa fare con, e.g:
referenceId: { type: Number, format: '0', required: true }
.
L'UI admin formaterà sempre il valore utilizzando la stringa nell'opzione format
. Per rimuovere tutta la formattazione (E.G. Migliaia del delimitatore) ha appena impostato questo su '0' come nell'esempio sopra.
È possibile utilizzare il formato predefinito nel modello utilizzando il .format
metodo di sottolineatura sul metodo Articolo:
div= stockItem._.format()
.
Il metodo di sottolineatura accetta un argomento stringa che sovrascrive l'opzione format
impostata nel modello, in modo da poter renderla diversamente nei modelli, ad esempio.
div= stockItem._.format('0,0');
.
La stringa di formato predefinita per i campi numeri è '0,0[.][000000000000]'