首先,请原谅我的天真问题。我知道有一个简单的答案,但我目前正在同时学习JavaScript
和BackBone
,并遇到一些问题。使用动态信息呈现视图
我只是试图从我的JavaScript文件的信息集合中添加一个表到我的视图。这里是我的js文件:
(function(window,app,$){
app.views.itemsIndex = Backbone.View.extend({
id:"items-index",
initialize:function(){
},
events:{
},
render:function(){
template = new EJS({
url:"js/templates/patron/items/itemsIndex.ejs"
});
this.$el.html(template.render());
this.createDummies()
return this;
},
createDummies:function(){
var bookCollection = new app.collections.books();
for (var i = 0; i < 10; i++) {
var book = new app.models.book({title : 'title ' + i});
bookCollection.add(book);
var item = new app.views.itemsItem();
this.$el.append(item.render().el);
};
console.log(bookCollection);
}
});
})(window,window.circulationApp || {},$)
我得到一个错误,当我试图渲染错误未捕获的ReferenceError的观点:书没有定义
下面是我的EJS文件:
<td>
<div class="td-wrap">
<%= book.escape('title') %></td>
</div><!-- .td-wrap -->
有什么想法?
当你调用'template.render()'你没有传入任何数据到你的模板,所以* book *是未定义的。 – Jack
是的。我明白那个。我如何传递这些数据? – coder
我一直在使用下划线模板,但我认为对于esj,你将它传递给render方法,就像'template.render(this.model.getJSON()))'。这就是说,我认为你的这个问题有点不对,但我不确定你想要做什么,你的观点是什么“el”?是* itemsIndex *应该是父视图? – Jack