2011-06-21 32 views
2

我需要加載通過AJAX項目(菜單),但不知道如何... 試圖做這樣的:ExtJS的工具條加載項

var tb = Ext.create('Ext.toolbar.Toolbar', { 
     renderTo: 'top-menu', 
     autoLoad: { 
      url: '/index/tullbar', 
      renderer: 'component', 
      params: { 
       userId: 1 
      } 
     }, 
     layout: { 
      overflowHandler: 'Menu' 
     } 
    }); 

}); 

響應:

[ 
    { 
     "text": "test", 
     "menu": { 
      "text": "asdf", 
      "handler":"handleAction.createDelegate(window)" 
     } 
    } 
] 

但處理程序不管用。 任何人都可以給出工作示例。

+0

ExtJS4我假設? –

回答

0

我沒有用過元素裝載機之前,所以我會做一個胡亂猜測,你應該根據http://docs.sencha.com/ext-js/4-0/#/api/-cfg-renderer指定渲染功能:

var tb = Ext.create('Ext.toolbar.Toolbar', { 
    renderTo: 'top-menu', 
    autoLoad: { 
     url: '/index/tullbar', 
     renderer: function(loader, response) { 
      var menuItems = Ext.decode(response.responseText); 
      tb.items.add(menuItems); 
     }, 
     params: { 
      userId: 1 
     } 
    }, 
    layout: { 
     overflowHandler: 'Menu' 
    } 
}); 
+0

您的示例引發錯誤: 'code'comp.getItemId不是函數 – Subdigger

+0

並列爲:'renderer:'component',' 並將服務器的答案替換爲:'[{「text」:「test」,「menu 「:{」text「:」asdf「,」listeners「:{」click「:{」fn「:」function(){alert('halo')}「}}}}]點擊按鈕'me.el is undefined' – Subdigger

+0

@Subdig好吧,對不起,如果我困惑你。我以前沒有使用autoLoad。沒有找到任何好的例子。 –