[英]How do I add a custom method to a backbone model?
我試過了:
initialize: function() {
if (this.get("id") == "modelOfInterest") {
var func = function() {
//do some stuff with the model
}
_.bind(func, this)
}
}
和
initialize: function() {
if (this.get("id") == "modelOfInterest") {
var func = function() {
//do some stuff with the model
}
this.on("func", func, this);
}
}
但是在這兩種情況下:
myModelInstance.func(); //object has no method func
我寧願不使用_.bindAll()
。
我編輯了上面的代碼,表明我試圖將func綁定到只有一個模型。 將模型添加到集合時進行初始化:所有模型同時觸發初始化,我只想將func綁定到其中一個模型。
有什么理由不明白嗎?
Model = Backbone.Model.extend({
func: function() {
},
})
在if
塊中將func
指定為模型的屬性。
var Model = Backbone.Model.extend({
initialize:function() {
if (this.get('id') === 1) {
this.func = function() {
// your logic here
};
this.on('func',this.func,this);
}
}
});
應該在.extend調用中的第二個字典上聲明靜態方法:
SomeModel = Backbone.Model.extend({
initialize: function(){}
},{
someStaticFunction: function(){
//do something
}
});
嘗試這個:
SomeModel = Backbone.Model.extend({
initialize: function(){},
someFunction: function(){
//do something
}
});
和這個:
var model = new SomeModel();
model.someFunction();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.