إكستجس 5.تحويلة.التطبيق ليس وظيفة.لم؟
سؤال
أحصل على خطأ في وحدة التحكم: Ext.application is not a function
.بلدي index.html
يحتوي الملف على هذا الرمز:
...
<link rel="stylesheet" type="text/css" href="/ext-5.0.1/packages/ext-theme-neptune/build/resources/ext-theme-neptune-all.css" />
<script src="/ext-5.0.1/ext-all-debug.js"></script>
<script type="text/javascript" src="app.js"></script>
...
بينما app.js
لديه فقط هذا الرمز ، مأخوذة من عرض واحد:
Ext.application({
name: 'AM',
appFolder: 'app',
launch: function() {
Ext.create('Ext.container.Viewport', {
layout: 'fit',
items: [{
xtype: 'panel',
title: 'Users',
html : 'List of users will go here'
}]
});
}
});
تحرير
بالمناسبة ، حتى تشغيل"الرسمية" /ext-5.0.1/examples/app/simple/simple.html
أحصل على نفس الخطأ.لماذا هذا?
المحلول
لف المكالمة إلى Ext.application
داخل Ext.onReady
منع.
// app.js
Ext.onReady(function() {
Ext.application({
name: 'AM',
appFolder: 'app',
launch: function() {
Ext.create('Ext.container.Viewport', {
layout: 'fit',
items: [{
xtype: 'panel',
title: 'Users',
html : 'List of users will go here'
}]
});
}
});
})
والسبب في ذلك ضروري ، راجع للشغل ، هو أن تحويلة كل التصحيح.لا تحتوي ملفات جس على جميع إكستجس.أنه يحتوي على رمز التمهيد-الرمز الذي يعرف كيفية الحصول على كل شيء آخر.جزء من هذا "كل شيء آخر" هو رمز التطبيق.لذلك حتى كان ذلك فرصة لتشغيل ، تحويلة.التطبيق غير موجود.
يعمل مثال البوابة الذي ذكرته لأنه يستخدم نتيجة sencha app build
- ال microloader.js
.هذا يحمل نسخة كاملة من إكستجس (أو بالأحرى ، الأجزاء المستخدمة في التطبيق) ، وبالتالي تحويلة.يتم تعريف التطبيق بالفعل في الوقت الذي يتم استخدامه.(الشيء نفسه ينطبق مع سينشا كمان - لن تحتاج إلى تحويلة.على استعداد هناك إما)
نصائح أخرى
بدلا من
<script src="/ext-5.0.1/ext-all-debug.js"></script>
يجب عليك استخدام
<script src="/ext-5.0.1/build/ext-all-debug.js"></script>
والثاني يحتوي على جميع المكونات والفئات كما هو متوقع.