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