2013-07-29 67 views
3

我把這段代碼放在一個jsp文件中,第一次運行OK。但第二次拋出錯誤。同一個sencha touch應用程序的兩個實例

function ${namespace}addAppInternal(divIdStr) {  
    Ext.application({ 
    models: [ 
     'OldGridDataModel' 
    ], 
    stores: [ 
     'DataStore', 
     'OldDataStore' 
    ], 
    views: [ 
     'Main', 
     'TouchTreeGrid' 
    ], 
    controllers: [ 
     'TouchGridController' 
    ], 
    name: 'MyApp', 
    appFolder: '/o3-parts-web/senchaGridTouch/app', 


    launch: function() { 

     var cont = Ext.create('Ext.Container', { 
       layout: { 
        type: 'fit'                            
       }, 
       renderTo: <%=divIdStr %>, 
       //itemId: 'main', 
       user: '<%=username %>', 
       ticket: '<%=ticket %>', 
       height : 300, 
       id: String(<%=divIdStr %>), 
       divT: document.getElementById("${prefsHelperDiv}") 
      }); 
     cont.add({html:'test'}); 
    } 


}); 

的錯誤是:

"Uncaught Error: Ext.setup has already been called before"

我知道Ext.application()運行Ext.setup()。

爲什麼我不能運行兩次?我怎樣才能避免這種情況?

+0

你可以添加更多的信息,爲什麼你想同時啓動相同的Web應用程序?這可能有幫助。並且請添加一些有關id和renderTo的信息到同一個目標。 – Dinkheller

回答

0

你不能調用Ext.application兩次,你只能調用它一次,這就是爲什麼你會得到這個錯誤。你不能兩次調用它,因爲它是一個Singleton &一個應用程序只是一個應用程序,如果沒有意義,它不能是兩個應用程序。我建議你在加載時初始化函數,然後在你定義的函數中調用你想要的任何東西。

希望它有幫助

相關問題