javascript - Backbone .js : Associating params to events callback function

标签 javascript backbone.js requirejs underscore.js backbone-events

我正在为事件列表创建自定义事件。我将这些事件放在一个文件(event.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");

我得到输出,因为数据未定义。为什么未获取值 '['test1','data1']'?

最佳答案

考虑这两行:

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

假设此时的 data 是一个数组 (['test1','data1']),您的代码将执行以下操作:

console.log("Data is " + ['test1','data1'].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});

参见下划线绑定(bind)documentation了解更多示例。

关于javascript - Backbone .js : Associating params to events callback function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42438197/

相关文章:

javascript - 如何使用浏览器并行加载但仍然使用 RequireJS 保持脚本的顺序

javascript - 如何从 JavaScript 中的字符串表示形式创建 RegExp?

javascript - Backbone.js:在将模型添加到集合之前无法进行验证

javascript - underscore.js 使用上下文的过滤函数

javascript - 如何在不取消绑定(bind)事件的情况下分离然后重新附加 Backbone.View?

.net - 如何使用主干单页应用程序在 MVC4 中测试 AntiForgeryToken

jquery - 如何将 jQuery ajaxPrefilter 方法应用于所有 require.js View ?

javascript - Requirejs 未加载 jquery 插件

javascript - 如何在没有新图像移动对象的情况下包含鼠标悬停图像链接?

javascript - 使用 jquery 查找具有特定属性的 anchor