2013-07-18 78 views
11

如何爲Sails中的對象定義函數/實例方法?如何使用sails.js定義模型的實例方法

在水線DOC(https://github.com/balderdashy/waterline)他們說:

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

但是當我嘗試做定義一個實例方法在帆模型屬性,該功能不會被添加到該對象。 我做錯了什麼?

環境: 帆(v0.8.94),節點(v0.8.16)

+0

有與此對應的帆回購在GitHub上的問題:https://github.com/balderdashy/sails/issues/578 – Adrien

回答

14

您可以定義模型的實例方法與帆0.9.0這樣的:

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

用法示例:

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

FYI:仍然以這種方式工作的帆0.12.3 – Ultrasaurus

+0

使用v1嘗試此操作會產生:'錯誤:由於模型上的屬性和實例方法已被刪除,所以不允許使用函數。 –

相關問題