我從主幹中的其餘網址獲取模型對象的集合。然後我遍歷集合,並使用下劃線模板幫助器方法來處理來自模型的數據。但是在調用屬性時我得到了未定義的defaultImg。backbone.js模型屬性undefined
查看:
define (['jquery','underscore','backbone'],function($,_,Backbone){
PopVideoView = Backbone.View.extend ({
tagName:"li",
//template: _.template($('#popView').html()),
template: _.template("<li><img src='<%= defaultImg %>'/></li>"),
render: function()
{
console.log(this.model.toJSON());
this.template(this.model.toJSON());
this.$el.html(this.template);
return this;
}
});
return PopVideoView;
});
另一種觀點認爲:
define(['jquery','underscore','backbone','collections/PopVideos','views/PopVideo'],function($,_,Backbone){
PopVideosView = Backbone.View.extend ({
el:"#pop",
render: function()
{
this.collection.each (function(video)
{
popVideoView = new PopVideoView({model:video});
this.$el.append (popVideoView.render().el).hide().fadeIn(300);
},this);
return this;
},
});
return PopVideosView;
});
這是我從Chrome開發者控制檯獲得:
Object {video_id: "1G4isv_Fylg", video_name: "Coldplay - Paradise ", defaultImg: "http://i.ytimg.com/vi/1G4isv_Fylg/mqdefault.jpg", genre: "pop", date: "Feb 16, 2013 1:01:33 PM"…}
Uncaught ReferenceError: defaultImg is not defined
什麼,我做錯了什麼?
這是模型&集合:
define (['jquery','underscore','backbone'],function($,_,Backbone){
Video = Backbone.Model.extend ({
urlRoot:"/video",
});
return Video;
});//end define
define(['backbone','models/Video'],function(Backbone,Video) {
PopVideosCollection = Backbone.Collection.extend ({
model:Video,
url:"/pop/3/1"
});
return PopVideosCollection;
});
對,如果你使用'html()'函數,它會調用該函數,但jQuery不會給你的模板函數所期望的參數。 – 2013-03-02 03:46:25