我正在艱難地度過這段時間。在CoffeeScript中將現有的HTML表示爲Backbone.js數據結構
我有一個HTML列表,我想用Backbone.js來處理這些列表項上的事件。這是迄今爲止我所擁有的。這是一個簡化的場景,可以幫助我更好地瞭解如何構建更大的應用程序。就我的例子而言,我只想將現有的HTML列表攝取到Backbone結構中,並通過Backbone視圖處理點擊事件。
我得到一個錯誤,在視圖中使用@model,但我相當肯定我在這裏誤解了概念上的東西。
的CoffeeScript:
$ ->
class Item extends Backbone.Model
name: null
class ItemList extends Backbone.Collection
model: Item
class ItemView extends Backbone.View
tagName: 'li'
initialize: =>
@model.bind('change', this.render)
@model.view = this
events:
'click' : 'clicked'
clicked: ->
console.log 'clicked'
render: =>
this
class ItemListView extends Backbone.View
el: $('ul#test')
initialize: =>
$('li', @el).each(@addItem)
addItem: (item) ->
item = new ItemView({ el: item })
render: =>
this
Items = new ItemListView
HTML:
<ul id="test">
<li>Hi thar</li>
<li>Yeah</li>
<li>OK</li>
</ul>
這裏是我開始的jsfiddle早些時候:http://jsfiddle.net/Saxx4/
現在玩這個 - 絕對開始點擊。切換回JS,直到我更好地理解Backbone的工作方式。 –
好吧,切換回JS:http://jsfiddle.net/nicksergeant/b2RUW/ - 獲取「無法讀取屬性'0'未定義」 –
啊,明白了。需要在addItem中引用「this」,而不是傳遞item –