4

私はもう試した:

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 を 1 つのモデルのみにバインドしようとしていることを示しました。モデルは、コレクションに追加されると初期化されます。すべてのモデルが同時に初期化され、func をそのうちの 1 つにバインドしたいだけです。

4

4 に答える 4

14

明白なことをしない理由はありますか?

Model = Backbone.Model.extend({
  func: function() {
  },
})
于 2013-08-20T15:46:09.360 に答える
1

静的メソッドは、.extend 呼び出し内の 2 番目の辞書で宣言する必要があります。

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

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

于 2015-04-28T17:55:04.967 に答える
0

これを試して:

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

この:

var model = new SomeModel();
model.someFunction();
于 2013-08-20T15:44:46.713 に答える