0
我试图将外部html文件导入到Touch 2并遇到错误。我的看法代码如下:将html文件导入到Sencha Touch 2中
Ext.define("GS.view.Demo", {
extend: 'Ext.container.Container',
xtype: 'container',
requires: [
'Ext.Component',
'Ext.ItemCollection',
'Ext.Mask',
'Ext.behavior.Scrollable',
'Ext.layout.Layout',
],
config: {
title: 'Demo',
iconCls: 'star',
items: [{
flex: 1,
margins: '0 2 0 0',
title: 'Load raw html',
styleHtmlContent: true,
bodyPadding: 5,
loader: {
autoLoad: true,
url: 'SHdemo.html'
}
}]
}
});
和apps.js:
//<debug>
Ext.Loader.setPath({
'Ext': 'sdk/src'
});
//</debug>
Ext.application({
controllers: ["Main"],
name: 'GS',
requires: [
'Ext.MessageBox'
],
views: ['Main', 'Home', 'Contact', 'Blog', 'Demo'],
icon: {
57: 'resources/icons/Icon.png',
72: 'resources/icons/Icon~ipad.png',
114: 'resources/icons/[email protected]',
144: 'resources/icons/[email protected]'
},
phoneStartupScreen: 'resources/loading/Homescreen.jpg',
tabletStartupScreen: 'resources/loading/Homescreen~ipad.jpg',
launch: function() {
// Destroy the #appLoadingIndicator element
Ext.fly('appLoadingIndicator').destroy();
// Initialize the main view
Ext.Viewport.add(Ext.create('GS.view.Main'));
},
onUpdated: function() {
Ext.Msg.confirm(
"Application Update",
"This application has just successfully been updated to the latest version. Reload now?",
function() {
window.location.reload();
}
);
}
});
这个代码抛出“如果他们的文件已加载以下类甚至没有宣称:“Ext.container.Container '“,如果我在我的视图中将'Ext.container.Container'替换为'Ext.Container',我会得到”错误:[Ext.createByAlias]无法创建无法识别的别名的实例:widget.demo“。什么是导入外部html文件的正确过程?
感谢您的帮助,模糊。该别名否定了窗口小部件错误,但我不确定声明视口代码的位置,并因此无法加载外部文件。我的“演示”屏幕上刚刚有一个空容器。 – kjarsenal 2012-03-27 03:15:29
您可以将xtype:'Demo'添加到视口,然后使用exampleviewport.setActiveItem()调用它。此外容器没有标题配置和边距应该是余量,bodyPadding应该只是填充。与加载器不同的是,您应该在侦听器中添加诸如初始化之类的内容。在你的Items配置文件的上面flex里添加xtype:'container'并将title改为html。 – fuzzyLikeSheep 2012-03-27 15:55:59
这里最大的问题是你有xtype:'container'。 xtype'container'已经被Ext.Container使用,所以你应该给你的类一个唯一的xtype。 过去就像fuzzyLikeSheep提到的那样,在这种情况下你有很多配置是无效的配置。 ajax调用将帮助您而不是加载程序配置 – 2012-04-04 14:36:00