2013-07-29 63 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 &一个应用程序只是一个应用程序,如果没有意义,它不能是两个应用程序。我建议你在加载时初始化函数,然后在你定义的函数中调用你想要的任何东西。

希望它有帮助

相关问题