2013-07-18 15 views
11

Come definire funzioni/metodo di istanza per gli oggetti in Sails?Come definire i metodi di istanza per i modelli con sails.js

In Waterline doc (https://github.com/balderdashy/waterline) dicono:

var User = Waterline.Collection.extend({ 
... 
    attributes: { 
    ... 
    // You can also define instance methods here 
    fullName: function() { 
     return this.firstName + ' ' + this.lastName 
    } 
    }, 
} 

Ma quando provo non definire un metodo di istanza in attributi in un modello vele, la funzione non viene aggiunto all'oggetto. Sto facendo qualcosa di sbagliato?

Ambiente: Vele (v0.8.94), Node (v0.8.16)

+0

C'è un problema che corrisponde a questo in vele di pronti contro termine in github: https://github.com/balderdashy/sails/issues/578 – Adrien

risposta

14

È possibile definire metodi di istanza in modelli con vele 0.9.0 in questo modo: Esempio

module.exports = { 
    attributes: {  
    name: { 
     type: 'STRING', 
     defaultsTo: 'zooname' 
    }, 
    instanceMethod: function(){ 
     // your code 
    } 
    } 
}; 

Usage:

ClientHit.findOne({}).exec(function(err, model){ 
    model.instanceMethod(); //use your instance method 
}); 
+0

FYI: funziona ancora in questo modo nel vele 0.12.3 – Ultrasaurus

+0

Provare con v1 produce: 'Errore: le funzioni non sono consentite in quanto gli attributi e i metodi di istanza sui modelli sono stati rimossi. –