2017-09-18 1 views
0

J'essaie de définir une valeur pour l'objet values, mais voiles l'ignore.Sailsjs beforeCréer de ne pas ajouter de nouvelle valeur à l'objet de valeurs

attributes: { 

    title: { 
     type: 'string', 
     required: true 
    }, 
    testAttr: { 
     type: 'integer' 
    } 
} 


beforeCreate: function (values, cb) { 

    values.testAttr = 1; 

    cb(); 
}, 

Mes valeurs objet ne contient pas une valeur testAttr quand il entre dans la méthode BeforeCreate que cette valeur est envoyée par la demande.

Il semblerait qu'il ne sera pas ajouté/mis à jour à moins qu'il ne soit présent sur l'objet de valeurs pour commencer.

Quelle est la bonne façon de faire cela?

+0

Quelle version de voiles utilisez-vous? – sgress454

+0

Nous utilisons la version 0.12.11 – ChrisWorks

+0

Hm, je ne suis pas capable de reproduire cela sur Sails v0.12.11. J'ai essayé avec des adaptateurs de voiles-disque et de voiles-postgresql. – sgress454

Répondre

0

Je pense que vous avez presque raison. Le rappel cb attend deux arguments: une erreur et un hachage de valeurs. Vous avez juste besoin de transmettre vos valeurs:

beforeCreate: function (values, cb) { 
    values.testAttr = 1; 
    cb(null, values); 
}, 
+0

Merci pour votre réponse, mais en fait ce n'est pas selon les docs [link] (http://sailsjs.com/documentation/concepts/models-and-orm/lifecycle-callbacks). J'ai aussi essayé ce que tu as suggéré et ça n'a pas marché. J'ai également essayé d'imprimer l'objet entier de valeurs après que j'ai placé l'attribut de testAttr et il n'est pas là - il est complètement ignoré. – ChrisWorks