簡體   English   中英

如何向骨干模型添加自定義方法?

[英]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
  } 
});

http://danielarandaochoa.com/backboneexamples/blog/2013/11/13/declaring-static-methods-with-backbone-js/

嘗試這個:

SomeModel = Backbone.Model.extend({
  initialize: function(){},
  someFunction: function(){
      //do something
  } 
});

和這個:

var model = new SomeModel();
model.someFunction();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM