jquery - Backbone.js 将其绑定(bind)到成功/错误回调?

标签 jquery backbone.js bind underscore.js

我的 Backbone 应用程序中有以下代码,有没有办法将“this”绑定(bind)到回调,而不是一直分配“$this”?

addItem: function()
{
    var $this = this;

    (new Project()).save({name:$('#project_name').val()},{
        success:function(model, response)
        {
            $this.collection.add(model);
        },
        error: function()
        {
            console.log('wtf');
        }
   });
}

最佳答案

您有 Underscore 可用,因此您可以 _.bind手动:

(new Project()).save({ name: $('#project_name').val() }, {
    success: _.bind(function(model, response) {
        this.collection.add(model);
    }, this),
    error: _.bind(function() {
        console.log('wtf');
    }, this)
});

或者只使用回调方法和_.bind_.bindAll那些:

initialize: function() {
    _.bindAll(this, 'success_callback', 'error_callback');
},
success_callback: function(model, response) {
    this.collection.add(model);
},
error_callback: function() {
    console.log('WTF?');
},
addItem: function() {
    (new Project()).save({ name: $('#project_name').val() }, {
        success: this.success_callback,
        error:   this.error_callback
    });
}

关于jquery - Backbone.js 将其绑定(bind)到成功/错误回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11167698/

相关文章:

javascript - 将键盘绑定(bind)到左/右导航

javascript - 带参数的 Window.Parent.Postmessage

javascript - 如何使用 jQuery 检查是否存在具有特定名称 attr 的输入

jQuery 验证帮助

javascript - 在 Angular JS 中动态地将类添加到 div

backbone.js - 尝试使用 Bootstrap 和 Marionette、同级标签渲染动态下拉菜单

javascript - 为什么在这个 Backbone todo-mvc 示例应用程序中需要 'apply'?

c++ - 使用 std::sort 和 boost::bind

php - 使用 Smarty 或 Backbone.js 制作 javascript 模板

javascript - JS>将HTML onclick事件绑定(bind)到自定义元素v1对象