Guest User

Untitled

a guest
Aug 16th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. Representing existing HTML as Backbone.js data structures in CoffeeScript
  2. $ ->
  3. class Item extends Backbone.Model
  4. name: null
  5.  
  6. class ItemList extends Backbone.Collection
  7. model: Item
  8.  
  9. class ItemView extends Backbone.View
  10. tagName: 'li'
  11.  
  12. initialize: =>
  13. @model.bind('change', this.render)
  14. @model.view = this
  15.  
  16. events:
  17. 'click' : 'clicked'
  18.  
  19. clicked: ->
  20. console.log 'clicked'
  21.  
  22. render: =>
  23. this
  24.  
  25. class ItemListView extends Backbone.View
  26. el: $('ul#test')
  27.  
  28. initialize: =>
  29. $('li', @el).each(@addItem)
  30.  
  31. addItem: (item) ->
  32. item = new ItemView({ el: item })
  33.  
  34. render: =>
  35. this
  36.  
  37. Items = new ItemListView
  38.  
  39. <ul id="test">
  40. <li>Hi thar</li>
  41. <li>Yeah</li>
  42. <li>OK</li>
  43. </ul>
  44.  
  45. addItem: (item) ->
  46. model = new ItemView({
  47. el: item,
  48. model: new Item({
  49. // assuming you might want the list item text
  50. // in the model data
  51. text: $(item).text()
  52. })
  53. })
  54.  
  55. class ItemListView extends Backbone.View
  56.  
  57. initialize: (opts) =>
  58. opts.items.each(@addItem)
  59.  
  60. // ...
  61.  
  62. Items = new ItemListView({ items: $('ul#test li') })
Add Comment
Please, Sign In to add comment