0

イベントリストのカスタムイベントを作成しています。私は、ファイル内のこれらのイベントこのような(event.js)があります。Backbone.js:イベントコールバック関数にパラメータを関連付ける

define(function(require, exports, module) { 
module.exports = { 

    'event1': ['test1','data1'], 
    'event2': ['test2','data2'] 
    }; 
}); 

私はこれらのイベントごとにイベントトリガーを作成していますが

createTriggers: function(Events){ //Events = require(event.js); 
     _.defer(function(){ 
     _.each(Events,function(data,event){ 
      var events = function() { console.log("Data is "+this.data)}; 
      events = _.bind(events,data); 
      targ.events.bind(event,events); //targ is the Backbone event object 
     }); 
     }); 
    } 

しかし、私は、イベントのいずれかをトリガするとき:

this.trigger("event1"); 

データが未定義のため、私はO/pを取得します。 '[' test1 '、' data1 ']'という値が取得されないのはなぜですか?

答えて

3

考慮すると、これらの2行:

console.log("Data is " + ['test1','data1'].data);

あなたはおそらくしたい:この時点でdataは、アレイ(['test1','data1'])、あなたのコードは、この行いがあると仮定すると

var events = function() { console.log("Data is "+this.data)}; 
events = _.bind(events,data); 

var events = function() { console.log("Data is "+this)}; 
events = _.bind(events,data); 

または

var events = function() { console.log("Data is "+this.data)}; 
events = _.bind(events,{data: data}); 

は、より多くの例については、下線バインド documentationを参照してください。

関連する問題