Я пытаюсь импортировать внешний файл 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-файлов?
Спасибо за помощь, нечеткого. псевдоним отрицает ошибку виджета, но я не уверен, где объявить код видового экрана, и в результате внешний файл не загружается. На моем экране «demo» у меня есть пустой контейнер. – kjarsenal
Вы можете добавить xtype: 'Demo' в область просмотра, а затем вызвать его exampleviewport.setActiveItem(). Кроме того, контейнер не имеет конфигурации заголовка, а поля должны быть маржи, bodyPadding должен быть просто дополнением. Вместо загрузчика вы должны добавить что-то вроде инициализации внутри слушателя. Выше flex внутри вашей конфигурации Items добавьте xtype: 'container' и измените заголовок на html. – fuzzyLikeSheep
Большой проблемой здесь является xtype: «контейнер», который у вас есть. Контейнер xtype уже используется Ext.Container, поэтому вы должны дать вашему классу уникальный xtype. Прошлое, которое, как и fuzzyLikeSheep, упоминает, у вас есть много конфигов, которые не являются допустимыми конфигурациями в этой ситуации. Вызов ajax поможет вам вместо конфигурации загрузчика –