在我的應用程序的初始化函數期間,我想默認搜索頁面並將我的LeagueCollection作爲模型傳遞。傳遞模型從本地存儲查看的問題
我遇到了一個問題,我可以添加手錶到this.searchResults在我的應用程序初始化,並看到模型:數組[3]如預期, 但當視圖中調用this.model.toJSON()我得到的錯誤對象沒有方法toJSON。
此代碼在內存集合中工作正常,然後我切換到使用backbone.localstorage.js在本地存儲應用程序數據。
所以我的問題是:爲什麼模型沒有填充在視圖中?
在我main.js我有
var AppRouter = Backbone.Router.extend({
routes: {
"": "list",
...
},
initialize: function() {
this.searchResults = new LeagueCollection();
this.searchPage = new SearchPage({
model: this.searchResults.fetch()
});
this.searchPage.render();
},
...
});
在我的搜索頁面視圖
window.SearchPage = Backbone.View.extend({
initialize:function() {
this.template = _.template(tpl.get('search-page'));
},
render:function (eventName) {
var self = this;
$(this.el).html(this.template(this.model.toJSON()));
this.listView = new LeagueListView({el: $('ul', this.el), model: this.model});
this.listView.render();
return this;
},
...
});
你要收集或內部'SearchPage'的模型,如果你想有一個集合,你應該把它叫做'collection'而不是'model'。 –
對不對 - 術語不正確 - 我的意思是模型 –
但是,如果它是一個集合,你應該稱之爲「集合」,否則你只會混淆每個人。視圖構造函數特別像'model'參數那樣處理'collection'屬性:http://backbonejs.org/#View-constructor –