Created
April 27, 2012 00:44
-
-
Save ajacksified/2504668 to your computer and use it in GitHub Desktop.
Why Coffeescript's 'extend' is beautiful with Backbone
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
App.Views.About ||= {} | |
class App.Views.About.BaseView extends App.Views.Base.BaseView | |
initialize: () -> | |
if @model | |
@model.bind('reset', @render) | |
@render() | |
render: => | |
if @options.render | |
if @model | |
html = @template.render({ secondaryDeals: @model.toJSON() }, { | |
deal_grid: HoganTemplates['shared/_deal_grid'] | |
col_secondary: HoganTemplates['shared/_col_secondary'] | |
district_drop_down: HoganTemplates['shared/_district_drop_down'] | |
account_header: HoganTemplates['users/_account_header'] | |
}) | |
else | |
html = @template.render({}, { | |
district_drop_down: HoganTemplates['shared/_district_drop_down'] | |
}) | |
@$el.html(html) | |
@options.render = true | |
class App.Views.About.AboutView extends App.Views.About.BaseView | |
template: HoganTemplates['about/about'] | |
class App.Views.About.FaqView extends Backbone.View | |
template: HoganTemplates['about/faq'] | |
class App.Views.About.ContactUsView extends App.Views.About.BaseView | |
template: HoganTemplates['about/contact_us'] | |
class App.Views.About.TermsView extends App.Views.About.BaseView | |
template: HoganTemplates['about/terms'] | |
class App.Views.About.PrivacyPolicyView extends App.Views.About.BaseView | |
template: HoganTemplates['about/privacy_policy'] | |
class App.Views.About.CopyrightPolicyView extends App.Views.About.BaseView | |
template: HoganTemplates['about/copyright_policy'] | |
class App.Views.About.SitemapView extends App.Views.About.BaseView | |
template: HoganTemplates['about/sitemap'] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
App.Views.About ||= {} | |
class App.Views.About.AboutView extends Backbone.View | |
template: HoganTemplates['about/about'] | |
initialize: () -> | |
@model.bind('reset', @render) | |
@render() | |
render: => | |
if @options.render | |
html = @template.render({ secondaryDeals: @model.toJSON() }, { | |
deal_grid: HoganTemplates['shared/_deal_grid'] | |
col_secondary: HoganTemplates['shared/_col_secondary'] | |
district_drop_down: HoganTemplates['shared/_district_drop_down'] | |
account_header: HoganTemplates['users/_account_header'] | |
}) | |
@$el.html(html) | |
@options.render = true | |
class App.Views.About.FaqView extends Backbone.View | |
template: HoganTemplates['about/faq'] | |
initialize: () -> | |
@render() | |
render: => | |
if @options.render | |
html = @template.render({}, { | |
district_drop_down: HoganTemplates['shared/_district_drop_down'] | |
}) | |
@$el.html(html) | |
@options.render = true | |
class App.Views.About.ContactUsView extends Backbone.View | |
template: HoganTemplates['about/contact_us'] | |
initialize: () -> | |
@render() | |
render: => | |
if @options.render | |
html = @template.render({}, { | |
district_drop_down: HoganTemplates['shared/_district_drop_down'] | |
}) | |
@$el.html(html) | |
@options.render = true | |
class App.Views.About.TermsView extends Backbone.View | |
template: HoganTemplates['about/terms'] | |
initialize: () -> | |
@render() | |
render: => | |
if @options.render | |
html = @template.render({}, { | |
district_drop_down: HoganTemplates['shared/_district_drop_down'] | |
}) | |
@$el.html(html) | |
@options.render = true | |
class App.Views.About.PrivacyPolicyView extends Backbone.View | |
template: HoganTemplates['about/privacy_policy'] | |
initialize: () -> | |
@render() | |
render: => | |
if @options.render | |
html = @template.render({}, { | |
district_drop_down: HoganTemplates['shared/_district_drop_down'] | |
}) | |
@$el.html(html) | |
@options.render = true | |
class App.Views.About.CopyrightPolicyView extends Backbone.View | |
template: HoganTemplates['about/copyright_policy'] | |
initialize: () -> | |
@render() | |
render: => | |
if @options.render | |
html = @template.render({}, { | |
district_drop_down: HoganTemplates['shared/_district_drop_down'] | |
}) | |
@$el.html(html) | |
@options.render = true | |
class App.Views.About.SitemapView extends Backbone.View | |
template: HoganTemplates['about/sitemap'] | |
initialize: () -> | |
@render() | |
render: => | |
if @options.render | |
html = @template.render({}, { | |
district_drop_down: HoganTemplates['shared/_district_drop_down'] | |
}) | |
@$el.html(html) | |
@options.render = true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment