2011-07-08 67 views
0
/** 
* Rajan Y. Rawal 
* application.js 
* This file is sample file for learing Extjs 
*/ 

// reference local blank image 
Ext.BLANK_IMAGE_URL = '../extjs/resources/images/default/s.gif'; 

// create namespace 
Ext.namespace('myNameSpace'); 

// Just to allow this tutorial to work for 1.1 and 2. 
//Ext.Ext2 = (Ext.version && (Ext.version.indexOf("2") == 0)); 

// create application 
    myNameSpace.app = function() { 
    var btn1; 
    var privVar1 = 11; 
    var btn1Handler = function(button, event) { 
     alert('privVar1=' + privVar1); 
     alert('this.btn1Text=' + this.btn1Text); 
    }; 

    return { 
     // public properties, e.g. strings to translate 
     btn1Text: 'Button 1', 

     // public methods 
     init: function() { 
       btn1 = new Ext.Button('btn1-ct', { 
        text: this.btn1Text, 
        handler: btn1Handler, 
        scope:this 
       }); 
     } 
    }; 
}(); 
Ext.apply(myNameSpace.app, { 
    btn1Text:'Taste 1', 
    init: function() { 
     try { 
      btn1 = new Ext.Button('btn1-ct', { 
       text: this.btn1Text, 
       handler: btn1Handler, 
       scope: this 
      }); 
     } 
     catch(e) { 
      alert('Error: "' + e.message + '" at line: ' + e.lineNumber); 
     } 
    } 
}); 

我的錯在哪裏?Extjs腳本不工作:拋出異常

+0

如果您希望得到一些答案,請格式化您的代碼。 –

+0

請給我一個例子,所以我可以改善它。謝謝 –

回答

0

您的腳本正在工作。你究竟期待它做什麼?

您正在創建帶有處理程序的Ext.button,但它並沒有被告知在頁面上的任何位置渲染。你應該提供一個renderTo配置選項,它會告訴ExtJS的渲染按鈕,一個給定的元素...

  btn1 = new Ext.Button('btn1-ct', { 
       text: this.btn1Text, 
       handler: btn1Handler, 
       scope: this, 
       renderTo: 'element-of-html-div' 
      }); 

此外,您定義,然後在myNameSpace.app覆蓋一切,這是毫無意義的。

+0

感謝Jaistu節省了一些時間。 –

+0

謝謝Jaitsu節省了一些時間。我只是extjs的初學者。如果我刪除重寫的代碼,則剩下的代碼在左上角呈現一個沒有任何值的按鈕(按鈕名稱)。並沒有別的。當我添加覆蓋代碼時,它給了我js警報錯誤「btn1Handler未定義」。希望你的回覆。謝謝。 –