Rails 3.1 Backbone JST в View не будет компилироваться с событиями - PullRequest
1 голос
/ 22 августа 2011

Работа с рельсами 3.1, конвейер активов и coffeescript.Некоторое поколение я использовал драгоценный камень rails-backbone, чтобы помочь мне, и все работало хорошо для меня, пока я не попытался представить события на мой взгляд.Как только я помещаю что-либо в атрибут событий, JST не отображает (он обходится без него):

Headspace.Views.Shows ||= {}                                                                                                                              

class Headspace.Views.Shows.IndexView extends Backbone.View                                                                                               
  template: JST["backbone/templates/shows/index"]                                                                                                         

  el: '#show_listing'                                                                                                                                     

  initialize: () ->                                                                                                                                       
    @collection = @options.collection                                                                                                                     
    this.render()                                                                                                                                         

  events:                                                                                                                                                 
    'click .show_header' : 'show_details'                                                                                                                

  show_details = ()->                                                                                                                                     
    alert('action')                                                                                                                                       

  render: ->                                                                                                                                              
    $(@el).html(@template({collection:@collection}))

Я также попробовал пустой атрибут событий (который не компилируется, пока я не вставлюпустой {}), который отображает JST.Я считал, что el определяется как строка вместо элемента jQuery (с $ ()) до функции рендеринга.Если я укажу:

el: $('#show_listing')

и:

render: ->
  el.html(@template({collection:@collection}))

JST не компилируется.

1 Ответ

4 голосов
/ 25 августа 2011

просто опечатка у вас там

вместо

 show_details = ()->                                                                                                                                     
    alert('action') 

это

  show_details : ()->                                                                                                                                     
    alert('action') 

Я предполагаю, что вы использовали shift + enter в textmate для фрагмента функций? Я тоже это сделал.

...