我有这样的观点:
class MyView1 extends Backbone.Marionette.Layout
template: JST['templates/view1']
regions:
region1: '.region1'
## Here some methods....
现在我想扩展这个类来添加一些区域和方法
class MyView2 extends MyView1
template: JST['templates/view2']
regions:
region2: '.region2'
这会覆盖模板和区域属性。但我想将region2添加到区域的哈希值,而不是覆盖它。所以区域将是region1和region2的哈希。
我怎样才能得到它?
答案 0 :(得分:1)
这是一种解决方法:
class MyView1 extends Backbone.Marionette.Layout
template: JST['templates/view1']
regions:
region1: '.region1'
class MyView2 extends MyView1
template: JST['templates/view2']
MyView2::regions = {}
for k, v of MyView1::regions
MyView2::regions[k] = v
MyView2::regions.region2 = '.region2'
但也许以下内容会更清洁,同样也能满足您的目的:
class MyView1 extends Backbone.Marionette.Layout
constructor: ->
@regions =
region1: '.region1'
template: JST['templates/view1']
class MyView2 extends MyView1
constructor: ->
super()
@regions.region2 = '.region2'
template: JST['templates/view2']
根据评论的建议编辑使用更多惯用的coffeescript ::
代替.prototype