我知道我可以覆蓋所有區域以通過使用以下添加淡入淡出過渡。Backbone.Marionette Fade僅適用於特定區域?
Marionette.Region.prototype.open = function(view){
this.$el.hide();
this.$el.html(view.el);
this.$el.fadeIn()
}
有沒有辦法只覆蓋特定區域或視圖?我的佈局中有一些區域可以淡入,而其他區域應該立即渲染。
感謝,
DK
我知道我可以覆蓋所有區域以通過使用以下添加淡入淡出過渡。Backbone.Marionette Fade僅適用於特定區域?
Marionette.Region.prototype.open = function(view){
this.$el.hide();
this.$el.html(view.el);
this.$el.fadeIn()
}
有沒有辦法只覆蓋特定區域或視圖?我的佈局中有一些區域可以淡入,而其他區域應該立即渲染。
感謝,
DK
您可以自定義一個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"})
});
,我只是使用的另一種選擇是覆寫動畫open方法是創建一個單獨的配置文件,覆蓋在配置文件中的打開方法,和條件邏輯測試對於類名。所以這就是我對咖啡腳本和使用Marionette模塊所做的。
創建我的觀點:
@Item.module "ItemApp.Add", (Add, App, Backbone, Marionette, $,_) ->
class Add.Item extends Marionette.ItemView
template: "#add-item"
className: "add-modal"
而在我的配置文件我只是測試的類名來執行所需的動畫:
do (Marionette) ->
_.extend Marionette.Region::,
open: (view) ->
if view.el.className == "add-modal"
console.log "the add-modal has been called"
@$el.hide()
@$el.html(view.el)
@$el.show().animate "left": '0', queue: false
謝謝,德里克並感謝您創建的木偶。 – dkleehammer 2012-08-09 22:03:36
感謝Derick的提示。我無法獲得代碼片段的工作,但我補充說... Backbone.Marionette.Region.prototype.open.call(this,view,appendMethod); ...到FadeInRegion開放方法的底部,這一切都很好。 – 2012-09-14 15:14:08
對於那些試圖讓第二個代碼片段工作,嘗試將第二個片段更改爲:var FadeInRegion = Backbone.Marionette.Region.extend({ – krhorst 2013-05-03 15:23:00