Javascript 在Backbone.js中插入DOM子视图时出现问题

Javascript 在Backbone.js中插入DOM子视图时出现问题,javascript,model-view-controller,backbone.js,Javascript,Model View Controller,Backbone.js,尝试将从forEach创建的子视图(OfferMarketView)返回到DOM中。最好的方法是什么?我不能让下面的工作 // DEFINE VIEW var OfferView = Backbone.View.extend({ initialize: function () { this.model = new Offers(); this.model.fetch(); this.model.on('change', this.model

尝试将从forEach创建的子视图(OfferMarketView)返回到DOM中。最好的方法是什么?我不能让下面的工作

// DEFINE VIEW
var OfferView = Backbone.View.extend({
    initialize: function () {
        this.model = new Offers();
        this.model.fetch();
        this.model.on('change', this.modelChange);
        this.model.on('change', this.render);
        this.modelChange = function () {
            alert('model changed');
        };
        this.render();
    },
    render: function () {
        var container = this.el;
        this.model.forEach(function (s) {
            var view = new OfferMarketView({
                id: "container" + s.get('name').toLowerCase().replace(/\s*/g, '')
            });
            $("#offerCol").append(view.el);
        });
        return this;
    }
});
var OfferMarketView = Backbone.View.extend({
    tagName: "div",
    className: "classname",
    events: {},
    render: function() {
    }
});


// INITIALISE VIEW
offerView = new OfferView();

在添加元素之前,必须渲染视图:

$("#offerCol").append(view.render().el);
请注意,您必须添加
并返回该值,使其可链接:

var OfferMarketView = Backbone.View.extend({
    tagName: "div",
    className: "classname",
    events: {},
    render: function() {
        return this;
    }
});

控制台中有个错误,OfferMarketView不是构造函数。。。我做错了什么?你确定在声明OfferMarketView视图之前没有实例化你的OfferView吗?我不知道为什么很多教程都使用.append(view.el)。调用render()肯定是答案。我不知道您希望得到什么。我看到,
提供的marketview.render
是空的,并且从未调用过。。因此,
OfferMarketView.el
将始终是
。然后,您要做的是迭代这个看起来像
集合的.model
,并将空的
附加到
\offerCol
元素。你能告诉我们你到底期望什么吗?