0

在 0.9.3 中,区域管理器已更改,更改日志中包含以下条目:

  • BREAKING更改了实现Region以允许更轻松地覆盖新视图如何添加到 DOM

覆盖 open 方法的最佳方法是什么?

目前我正在做以下工作,但我很想知道推荐的方法是什么:

_.extend(Backbone.Marionette.Region.prototype, {
  open: (view) ->
    @$el.after(view.el)
})

这种变化也破坏了我的一些代码,因为在某些情况下我是这样调用 show 的:

region.show(documentsView, 'after')

在其他人中,我这样称呼它:

region.show unitsView

我如何覆盖 open 以考虑这两个实例,或者我是否需要覆盖 show?

4

1 回答 1

0

这有效:

_.extend(Backbone.Marionette.Region.prototype, {
        show: (view, appendMethod) ->
            @ensureEl()
            @close()

            view.render()

            @open(view, appendMethod)
            @currentView = view

        open: (view, appendMethod) ->
            appendMethod = appendMethod || "html"
            @$el[appendMethod](view.el)
    })
于 2012-07-11T15:09:59.560 回答