繁体   English   中英

Backbone.js 视图渲染错误

[英]Backbone.js view render error

如果我这样做 - 一切都很好 -

var UserList = Backbone.View.extend({
        el: '.page',
        render: function(){

            var users = new Users();
            users.fetch({
                success: function() {
                    console.log('success');

                }
            })
                this.$el.html('test');

        }
    });

但是当我插入this.$el.html('test'); 进入成功回调我收到一个错误:

类型错误:'undefined' 不是一个对象(评估 'this.$el.html')

var UserList = Backbone.View.extend({
        el: '.page',
        render: function(){

            var users = new Users();
            users.fetch({
                success: function() {
                    console.log('success');
                    this.$el.html('test');
                }
            })
        }
    });

控制台日志被正确触发。

success内部,上下文已更改,因此this不再指视图对象(我相信它实际上指的是 JQuery Ajax 对象)。 要解决此问题,您可以使用var self = this保存对视图的引用:

var users = new Users();
var self = this;
users.fetch({
    success: function() {
        console.log('success');
        self.$el.html('test');
    }
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM