2017-01-13 18 views
0

次のコードでは、Ext.getCmpは呼び出されたときに完全に定義されていないため機能しません。どのように私はこれらの2つのものをつかむことができますかExtJS arrowHandlerがsplitbuttonを参照する必要があります

また、別のコード部分がlist.menu.buttonsに継続的にプッシュされているので、矢印がクリックされたときにのみ項目に追加する必要があります。

xtype: "splitbutton", 
id: "list", 
enableToggle: true, 
arrowHandler: (function() { 
       var library = Ext.getCmp("library"); 
       var buttons = Ext.getCmp("list").menu.buttons; 
      function btn(num) { 
       var image = new Image; 
       image.src = buttons[num].dataURL; 
       this.xtype = "button"; 
       this.height = 50; 
       this.width = 50; 
       this.icon = image; 
       this.num = num; 
       this.handler = function (btn) { 
        btn.up("button").fireEvent("selected", this.num); 
       }; 
      } 
      for (var i = 1; i <= 1; i++) 
       library.push(new btn(i)); 
     })(), 
menu: { 
    plain: true, 
    buttons: [],        
    items: [ 
     { 
      xtype: "ribbon_gallery", 
      columns: 3, 
      title: "Recent", 
      id: "recent", 
      items: [] 
     }, 
     { 
      xtype: "ribbon_gallery", 
      columns: 3, 
      title: "Library", 
      id: "library", 
      itemId: "library", 
      items: [] 
     } 
    ] 
} 

答えて

1

問題は、あなたが

arrowHandler: function() {...} 
"正常な" 機能を必要とする arrowHandler設定

arrowHandler: (function() {...})() 

self-invoked機能が指定されていることです

関連する問題