Проблема вставки в дочерние представления DOM в Backbone.js - PullRequest
1 голос
/ 21 марта 2012

Попытка вернуть мои дочерние представления (OfferMarketView), созданные из forEach, обратно в 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();

1 Ответ

2 голосов
/ 21 марта 2012

Вы должны визуализировать свой вид перед добавлением элемента:

$("#offerCol").append(view.render().el);

Обратите внимание, что вам нужно добавить return this; в методе рендеринга, чтобы он был цепным:

var OfferMarketView = Backbone.View.extend({
    tagName: "div",
    className: "classname",
    events: {},
    render: function() {
        return this;
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...