Comment formater un champ Numéro dans KeystoneJS ?
-
23-12-2019 - |
Question
C'est la propriété 'referenceId' que je voudrais formater.Voici mon code modèle :
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-t-il un moyen de déclarer le formatage à l'intérieur du modèle ?Je n'arrive pas à comprendre la documentation de cette partie.
Voici une image du champ avec une virgule à l'intérieur, dont je veux me débarrasser car il s'agit d'un identifiant de référence, pas d'une valeur de ce type.
La solution
Champs numériques dans KeystoneJS Utilisez le chiffre.js bibliothèque pour formater les valeurs.
Il existe une option que vous pouvez définir sur le champ pour contrôler la chaîne de format par défaut, qui peut être n'importe quel format valide avec lequel le chiffre sait quoi faire, par exemple :
referenceId: { type: Number, format: '0', required: true }
L'interface utilisateur d'administration formatera toujours la valeur en utilisant la chaîne dans le format
option.Pour supprimer tout le formatage (par ex.délimiteur de milliers), définissez-le simplement sur « 0 » comme dans l'exemple ci-dessus.
Vous pouvez utiliser le format par défaut dans votre modèle en utilisant le .format
méthode de soulignement sur l'article :
div= stockItem._.format()
La méthode de soulignement accepte un argument de chaîne qui remplace le format
option définie dans le modèle, afin que vous puissiez le restituer différemment dans vos modèles, par ex.
div= stockItem._.format('0,0');
La chaîne de format par défaut pour les champs Nombre est '0,0[.][000000000000]'