首先,請原諒我的天真問題。我知道有一個簡單的答案,但我目前正在同時學習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