6
我有一個工作的CoffeeScript /骨幹成語,看起來像這樣:你如何做Coffeescript的匿名課程?
SidebarWidgets = ((() ->
SidebarWidgets = { }
class SidebarWidgetPrototype extends Backbone.View
initialize: (options) ->
@template = $(options.templateId).html()
render:() ->
$(@el).html(_.template(@template, @model.toJSON()))
@el
class SidebarWidgets.user extends SidebarWidgetPrototype
class SidebarWidgets.shoppingcart extends SidebarWidgetPrototype
class SidebarWidgets.messages extends SidebarWidgetPrototype
SidebarWidgets
)())
class Sidebar extends Backbone.View
views: ['user', 'shoppingcart', 'messages']
initialize: (options) ->
@subviews = { }
_.each(@views,(v) =>
subviews[v] = news SidebarWidgets[v](
model: cxDatasets[v]
id: 'sidebar-' + v
templateId: '#sidebar-' + v + 'template'
)
)
render:() ->
$(@el).html()
_.each(@views, (v) =>
$(@el).append(@subview(v).render())
)
這個成語的目的是提供骨幹的列表視圖的側邊欄視圖然後將合併,同時提供了機會(但不必要性)來覆蓋或增強小部件的一個或多個方法。
令我感到厭煩的是,對於那些需要修改的而不是的意見,它們仍然需要通過Coffeescript的類語法明確命名。
有沒有辦法用Coffeescript語法創建匿名類?你能說些什麼(下面是僞代碼):
thisclass = extend BackboneView
initialize: (options) ->
如果是這樣,怎麼樣?
好吧,現在我覺得沒有嘗試這種做法是愚蠢的。它工作得很好,即使在下劃線「擴展」循環中也是如此。謝謝! – 2011-05-12 22:39:11
@ElfSternberg你我都。 – Erik 2014-01-31 21:14:01