#= require handlebars class Backbone.HandlebarsView extends Backbone.View
constructor: (options = {})-> @el = $("##{@name}") unless options.el @subViews = [] @parent = options.parent super templateEl = $("##{@name}_template") console.log "Did you include the template for #{@name}, putz?" if console? && templateEl.size() == 0 @template = if templateEl.size() > 0 then Handlebars.compile(templateEl.html(), true) else -> "" templateContext: -> @model render: -> @subViews = [] @el.html @template @templateContext(), Handlebars.helpers, Handlebars.partials, {view: this} @renderSubView(subView) for subView in @subViews findEl: -> @el = $("[data-id='#{@model.id}']") renderSubView: (subView) -> subView.findEl() subView.delegateEvents() subView.render()