Обертывание шаблонов рулей meteor.js в классы coffeescript

Я полностью копаюсь в метеоре, но я застрял, пытаясь сократить глобальность примеров и добавить немного ООП.

В настоящее время мой код выглядит следующим образом:

# View for Search Form
form = Template.SearchForm  
form.events =
  'submit #search_form' : query_submitted
  'click #load_more' : -> Songs.get_next_page()
  'focus #query' : clear_query_field

form.page = -> Songs.page
form.total_pages = -> Songs.total_pages 

Но, а-ля позвоночник или магистраль, я действительно хотел бы иметь что-то вроде этого:

class SearchForm extends Template.SearchForm
  events:
    'submit #search_form' : query_submitted
    'click #load_more' : -> Songs.get_next_page()
    'focus #query' : clear_query_field


  page : -> Songs.page
  total_pages : -> Songs.page

  # etc etc

form = new SearchForm

Как правильно обернуть шаблон руля в метеор?

Мне удалось обернуть Meteor.Collection, но поскольку handlebars называет объект после шаблона, я не уверен, как правильно это сделать для шаблона.

ОБНОВЛЕНО

@greg указал, что вы можете использовать _.extend для добавления свойств. Это работает, но что, если я хочу сложить методы обработчика событий «query_submitted» и «clear_query_field» в класс? Что-то вроде этого:

_.extend Template.SearchForm,
  events :
    'submit #search_form' : @query_submitted
    'click #load_more' : -> Songs.get_next_page()
    'focus #query' : @clear_query_field

  page : -> Songs.page
  total_pages : -> Songs.total_pages

  clear_query_field : (event) ->
    console.log 'focus'

  query_submitted : (event) ->
    event.preventDefault()
    Songs.clear()
    Songs.query = $('#query')[0].value 
    Songs.search()

Не совсем работает. Обработчики событий не вызываются должным образом, и я получаю сообщения об ошибках в консоли, например:

Uncaught TypeError: Object [object Window] не имеет метода 'query_submitted'

Аналогично,

events :
    'submit #search_form' : (e) -> @query_submitted(e)

Выдает:

Uncaught TypeError: Cannot call method 'call' of undefined

Так чего не хватает?

6
задан Scott Simon 18 May 2012 в 10:11
поделиться