2013-05-29 52 views
0

在我的應用程序中,我想創建一些像extjs4 api一樣的功能,當我點擊左邊的樹形菜單時,內容會顯示在右邊的一些代碼列表中: 左樹菜單代碼:extjs4在rails應用程序中的面板

var tree_panel = Ext.create('Ext.tree.Panel', { 
      listeners: { 
    'itemclick': function(grid, record, item, index, e, eOpts) { 
     Ext.Ajax.request({ 
      url: 'code/list.js', 
      success: function(response){ 
       show_tip_message("success!") 
      }, 
      failure: function(response){ 
        show_tip_message("false!") 
      } 
     }); 
     } 
    } 

codecontroller代碼(codecontroller.rb)

def list 
    respond_to do |format| 
    format.js 
    end 
end 

代碼查看代碼(list.js.erb)

var m_work_space = Ext.getCmp('work-space'); 
    m_work_space.removeAll(); 
    m_work_space.add(m_codegrid); 
    m_work_space.doLayout(); 

然而,當我單擊樹項目時,它彈出注意成功,但工作空間不刷新,爲什麼?任何幫助將升值

回答

0

也許你應該在你的成功回調中添加你的更新代碼?

listeners: { 
    itemclick: function(grid, record, item, index, e, eOpts) { 
     Ext.Ajax.request({ 
      url: 'code/list.js', 
      success: function(response){ 
       var m_work_space = Ext.getCmp('work-space'), 
        m_codegrid = response.responseText; 

       m_work_space.removeAll(); 
       m_work_space.add(m_codegrid); 
       m_work_space.doLayout(); 

       show_tip_message("success!") 
      }, 
      failure: function(response){ 
       show_tip_message("false!") 
      } 
     }); 
    } 
} 
+0

thx,我找到了爲什麼,雖然我得到了js代碼,但是js代碼沒有執行。你也可以使用eval()函數 –

相關問題