我知道我可以使用以下方法覆盖所有区域以添加淡入淡出过渡。

Marionette.Region.prototype.open = function(view){
  this.$el.hide();
  this.$el.html(view.el);
  this.$el.fadeIn()
}

有没有一种方法只能覆盖特定区域或 View ?我希望布局中的某些区域能够淡入,而其他区域则应立即渲染。

谢谢,

dk

最佳答案

您可以使用定义任何Backbone对象的方式定义自定义Region,然后将此代码添加到该区域类型。


MyRegion = Backbone.Marionette.Region.extend({

  el: "#some-element",

  open: function(view){
    this.$el.hide();
    this.$el.html(view.el);
    this.$el.fadeIn();
  }

});

MyApp.addRegions({
  myRegion: MyRegion
});

请注意,我在区域定义中包括了el。如果要在多个区域中重复使用它,则必须创建一个基础区域,并从该基础区域扩展到所需的每个基础区域。

FadeInRegion = Backbone.Marionette.Region.extend({

  open: function(view){
    this.$el.hide();
    this.$el.html(view.el);
    this.$el.fadeIn();
  }

});

MyApp.addRegions({
  myRegion: FadeInRegion.extend({el: "#some-element"}),
  anotherRegion: FadeInRegion.extend({el: "#another-element"})
});

关于marionette - Backbone.Marionette淡入淡出仅针对特定区域?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11890354/

10-14 18:47