javascript - Backbonejs 在保存成功处理程序中获取 View

标签 javascript jquery backbone.js

我已经为此搜索了大约 2 个小时,但找不到任何东西,所以请询问。

我正在尝试第一次使用 Backbonejs,目前正在尝试进行 ajax 调用并处理结果。我知道这可能不是应该使用的函数模型,但我只是尝试一下,研究如何在其他情况下使用它。

var Login = Backbone.Model.extend({
    url: WEBSITE_PATH+'login',
});
var loginView = Backbone.View.extend({
    events:{
        'submit form': 'login'
    },

    login: function(e){
        e.preventDefault();
        this.model.save({
            username: $(e.currentTarget).find('#username').val(),
            password: $(e.currentTarget).find('#password').val()
          }, {
            success: this.onSuccess,
            error: this.onError
        });
    },

    onSuccess: function(model, response){
        console.log(this); //Returns Window object
        // - - - - - ^ -> I need view object in order to get the $el and show result
    }
}
$(document).ready(function(){
    var login = new Login();
    new loginView({ el: $('#loginForm'), model: login });
});

在模型对象中没有返回 View 的引用。 我可以全局搜索页面来显示我的结果,但这违背了使用主干的目的。

目标:在 onSuccess 中执行类似 $(this.el).find('#result_message').html(response.message) 的操作

我是否以错误的方式看待这个问题,我应该以不同的方式这样做还是有办法获取 View 对象?

最佳答案

您可以使用 jQuery proxy 功能。

success: $.proxy(this.onSuccess, this)

关于javascript - Backbonejs 在保存成功处理程序中获取 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17150261/

相关文章:

javascript - 自定义日历布局 - 碰撞检测

javascript - jQuery 将 child 的子部分元素移动到其父元素并删除其他元素

javascript - 解密 Javascript

javascript - 使用 Backbone 和 Rails 实现加星收藏系统

collections - Backbone .js:将元素添加到集合而不重新渲染所有集合

php - 刷新后保留选定的选项(表单/选择)

Jquery 在正常和垂直之间更改文本

javascript - 仅当元素前面没有文本节点时如何匹配元素的第一个子元素?

javascript - 当页面上已有旧版本时,如何在 chrome 扩展内容脚本中使用 jquery

php - 使用 cURL 和 PHP 以编程方式登录 SSL 站点