2013-06-13 57 views
1

我只是想顯示一個MessageBox。但是,我得到一個錯誤:類型錯誤:Ext.Msg不是一個函數EXTJS4:Ext.msg框未顯示,引發錯誤

我在控制器代碼:

..... Ext.MessageBox.show({ 
          title:'Delete', 
          msg: 'Delete user <b>'+r.extraParams.username+'</b>', 
          buttons: Ext.MessageBox.YESNO, 
          fn: function(buttonId) { 
           var userId=r.extraParams.userId; 
           console.log(buttonId); 
           if (buttonId === "yes") { 
            Ext.Msg('OK', 'User deleted', 'success'); 
           } 
          }, 
          icon: Ext.MessageBox.QUESTION, 

         });.... 

它應該看起來像在這裏,你點擊一個按鈕後:http://dev.sencha.com/deploy/ext-4.0.0/examples/message-box/msg-box.html 然後會有一個消息出現瀏覽器頂部的框! Waht錯了?有任何想法嗎?謝謝!

回答

0

因爲Ext.Msg不是函數,所以你得到'Ext.Msg不是函數'錯誤。請參閱文檔:http://docs.sencha.com/extjs/4.0.7/#!/api/Ext.window.MessageBox

所以Ext.Msg使用不正確的位置:

if (buttonId === "yes") { 
    Ext.Msg('OK', 'User deleted', 'success'); 
} 

你必須展現出新的框:

if (buttonId === "yes") { 
    Ext.MessageBox.show({ 
     title: 'Success', 
     msg: 'User Deleted', 
     buttons: Ext.MessageBox.OK 
    }); 
} 

編輯:從您的意見,這聽起來像你想要一個確認框出現和淡出。這有點棘手。看着自己的例子:

Ext.get('mb4').on('click', function(e) { 
    Ext.MessageBox.show({ 
     title: 'Save Changes?', 
     msg: 'You are closing a tab that has unsaved changes. <br />Would you like to save your changes?', 
     buttons: Ext.MessageBox.YESNOCANCEL, 
     fn: showResult, 
    }); 
    }); 

    function showResult(btn) { 
    Ext.example.msg('Button Click', 'You clicked the {0} button', btn); 
    }; 

他們呼籲一些功能,他們創造了自己的實例名爲「Ext.example.msg()」。這不是一個常見的ExtJS組件。如果你想複製Ext.example.msg(),你必須查看ExtJS源代碼。

這裏有內線論壇問同樣的事情後:http://www.sencha.com/forum/showthread.php?40261-Where-can-I-find-Ext.example.msg

+0

但我不想按鈕的正常消息框。有一種MessageBox,如http://dev.sencha.com/deploy/ext-4.0.0/examples/message-box/msg-box.html中的示例所示。點擊正常消息框中的按鈕後,瀏覽器頂部會出現一個新的好看點,並在1秒後消失。正是這個消息箱我想要的! – user2477311

+0

查看最新編輯 – a3uge

0

我想你應該檢查你的應用程序的js文件。你錯過了extjs項目中的一些東西。 Here's same problem

+0

謝謝,但它並不能工作。 – user2477311