Javascript 在Backbone.js中插入DOM子视图时出现问题
尝试将从forEach创建的子视图(OfferMarketView)返回到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
// 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
元素。你能告诉我们你到底期望什么吗?