/js/coffee/helloworld4.coffee
CoffeeScript | 58 lines | 40 code | 14 blank | 4 comment | 0 complexity | 9c5a33d41197ed47bee39e1c90ba752b MD5 | raw file
- # Model
- window.Item = Backbone.Model.extend(defaults:
- part1: "hello"
- part2: "world"
- )
- # Collection
- window.List = Backbone.Collection.extend(model: Item)
- # Item View
- window.ItemView = Backbone.View.extend(
- tagName: "li"
- initialize: ->
- _.bindAll @
- render: ->
- @$el.html _.template $("#template_helloworld_item").html(),
- part1: @model.get "part1"
- part2: @model.get "part2"
- @
- )
- # List View
- window.ListView = Backbone.View.extend(
- events:
- "click button#add": "addItem"
- initialize: ->
- _.bindAll @
- @collection = new List()
- @collection.bind "add", @appendItem # collection event binder
- @counter = 0
- @render()
- render: ->
- self = @
- @$el.html _.template $("#template_helloworld2").html(), {}
- @collection.each (item) ->
- self.appendItem item
- , @
- $(".backbone").html @$el
- addItem: ->
- @counter++
- item = new Item()
- item.set part2: item.get("part2") + @counter # modify item defaults
- @collection.add item
- appendItem: (item) ->
- itemView = new ItemView(model: item)
- $("ul", @$el).append itemView.render().$el
- )