這是我簡單的Backbone應用程序,我正在學習。 (這是用咖啡寫的)這個小的BackBone應用程序是否正確?我是否正確使用約定?
這個想法是,我有一個x-y網格的網頁(1-1,2-1,1-2,2-2等)。該頁面加載並使用這些ID實例化一個集合。當用戶瀏覽(此時只有左右)時,模型會從服務器中加載完整的模型,包括要顯示的一些HTML。
它包含模型,集合和視圖,但我敢打賭,我在錯誤的地方做事!請讓我知道什麼是錯的。
Page = Backbone.Model.extend
displayHTML: (model, response) ->
$("#content").html(model.get('html'))
Pages = Backbone.Collection.extend
model: Page
url: "/pages"
current_page: '1-1'
initialize: (models, options) ->
this.fetch(success: this.displayFirst)
displayFirst: (collection, response) ->
model = collection.get(collection.current_page)
model.fetch(success: model.displayHTML)
nextPage: ->
id = "#{new Number(this.current_page[2]) + 1}-1" #todo - this will break with 9+
this.gotoPage(id)
previousPage: ->
id = "#{new Number(this.current_page[2]) - 1}-1" #todo - this will break with 9+
this.gotoPage(id)
gotoPage: (id) ->
this.current_page = id
if model = this.get(id)
model.fetch(success: model.displayHTML)
else
alert("Eh nooo")
AppView = Backbone.View.extend
el: $('body')
events:
"click #next-page": "nextPage"
"click #previous-page": "previousPage"
initialize: ->
this.pages = new Pages(null, {view:this})
nextPage: -> this.pages.nextPage()
previousPage: -> this.pages.previousPage()
appView = new AppView
對appview的好奇心:爲什麼不使用'tagName:'body''? – Tjorriemorrie 2012-02-02 05:43:18
感謝提示,非常有用:) 我擔心的事情,人們提到視圖渲染不是Model的關注點,所以我會盡量改變這一點。 關於我的結構錯誤的其他想法? – Alex 2012-02-02 17:45:03