2012-11-27 63 views
1

下午好!從extjs版本4.0.7升級到4.1.1的問題

我試圖從版本4.0.7升級到4.1.1(作爲免費的45天試用版下載),以便在我們目前運行的應用程序中測試版本4.1並查看可能會發生多少變化需要在正式升級之前做的,我做的唯一步驟指着我的JSP文件複製到新的文件在頁面的頭如下:

<link rel="stylesheet" href="3rdParty/ext-4.1.1a/resources/css/ext-all.css"/> 

<script type="text/javascript" charset="utf-8" src="3rdParty/ext-4.1.1a/ext-all-debug.js"></script> 

而在我的jsp頁面,我做的事情很簡單,只是創建一個按鈕,我用這個代碼:

<body> 
      <script type="text/javascript"> 

       Ext.create('Ext.Button', { 
        text: 'Test window', 
        width: 75, 
        renderTo: Ext.getBody(), 
        handler: function() { 
         alert("the button worked""); 
        } 
       }); 
    </script> 
    </body> 

但沒有什麼是當我調試的代碼無法調用「createChild所」的未定義

:ING顯示當我運行這個頁面,當我使用谷歌瀏覽器的開發工具,控制檯顯示此消息:

遺漏的類型錯誤,顯示在文件EXT-ALL-debug.js錯誤:20687

getStyleProxy: function(cls) { 
     var result = this.styleProxyEl || (Ext.AbstractComponent.prototype.styleProxyEl = Ext.resetElement.createChild({ 


       style: { 
        position: 'absolute', 
        top: '-10000px' 
       } 
      }, null, true)); 


     result.className = cls; 
     return result; 
    }, 

哪一步是我失蹤?我在ExtJS的很新而且據我瞭解,從4.0.7版本升級到4.1.1不應該涉及許多不同的步驟來編寫代碼的不同方式,有人可以幫我嗎?

非常感謝提前!

+1

一個鏡頭在黑暗中 - 你試圖把'Ext.onReady內的分機代碼(函數(){});'? – Izhaki

+1

Izhaki是正確的,你的代碼在完整dom被加載/準備好之前運行,並且主體尚不存在。把你的代碼放在onReady的回調函數中。 –

+1

你也有一個額外的報價在你的警報() – dbrin

回答

2

儘量把你的代碼的onReady塊中:

<body> 
<script type="text/javascript"> 

    Ext.onReady(function() {    
     Ext.create('Ext.Button', { 
      text: 'Test window', 
      width: 75, 
      renderTo: Ext.getBody(), 
      handler: function() { 
       alert("the button worked"); 
      } 
     }); 
    }); 

</script> 
</body>