2014-03-13 46 views
0

我想在任何顯示任何地區後執行顯示代碼。我試過了:木偶戲表演事件不會被觸發

app.Layout = Backbone.Marionette.Layout.extend({ 
     template: "#layout-template", 
     regions: { 
      mini1: { 
       selector: "#mini1", 
       onShow: function() { 
        console.log("triggered!"); 
       } 
      }}); 
app.layout.mini1.show(new view()); 

但是onShow函數沒有運行。它有什麼問題?

回答

2

有在區域的列表定義區域的3路:

  1. 串選擇
  2. selectorregionType Properties對象
  3. Region類

所以,當你傳遞對象您無法指定onShow處理程序。但是你可以做你想做的,如果你通過擴展Marionette.Region

var Layout = Backbone.Marionette.Layout.extend({ 
    template: "#layout-template", 
    regions: { 
     mini1: Marionette.Region.extend({ 
      el: "#mini1", 
      onShow: function() { 
       console.log("triggered!"); 
      } 
     }) 
    } 
}); 

您可以檢查該解決方案在這裏:http://jsfiddle.net/2CvzR/

和文檔在這裏:https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.region.md#custom-region-types