【发布时间】:2012-03-21 06:29:13
【问题描述】:
试图让我从 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();
【问题讨论】:
-
我不知道您希望获得什么。我看到
OfferMarketView.render是空的,也永远不会被调用.. 所以OfferMarketView.el将永远是<div class="classname"></div>。然后你要做的是遍历看起来像Collection的this.model并将你的空<divs>附加到#offerCol元素。您能告诉我们您的期望是什么吗?
标签: javascript model-view-controller backbone.js