我把这段代码放在一个jsp文件中,第一次运行OK。但是第二次它会抛出错误。
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()。
为什么我不能运行它两次?我该如何避免这种情况?
最佳答案
您不能调用 Ext.application 两次,您只能调用一次,这就是您收到该错误的原因。你不能调用它两次,因为它是一个单例,一个应用程序只是一个应用程序,如果有任何意义的话,它不能是两个应用程序。我建议你在加载时初始化函数,然后在你定义的函数中调用任何你想要的。
希望对你有帮助
关于jsp - 同一个 sencha touch 应用程序的两个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17932411/