错误:部署 sencha touch 应用程序后,即使文件已加载,也未声明以下类
Posted
技术标签:
【中文标题】错误:部署 sencha touch 应用程序后,即使文件已加载,也未声明以下类【英文标题】:Error : The following classes are not declared even if their files have been loaded" after deploying sencha touch application 【发布时间】:2017-07-03 10:31:48 【问题描述】:Uncaught SyntaxError: Unexpected token
未捕获的错误:以下类未声明,即使它们的 文件已加载:'Ext.Title'。请检查源代码 他们对应的文件可能的错别字:'touch/src/Title.js 在 Object.onFileLoaded (sencha-touch.js:8618) 在对象。 (sencha-touch.js:3267) 在 htmlScriptElement.onLoadFn (sencha-touch.js:8275)
【问题讨论】:
【参考方案1】:第一个错误表示某个文件已加载但不包含预期的 JSON 或 javascript。相反,该文件包含 HTML 或 XML。
第二个错误说文件touch/src/Title.js
不包含Ext.define('Ext.Title', ...)
。
如果满足以下条件,则会连续发生这两个错误:
您的应用程序在某处使用Ext.Title
,
您没有将 Ext.Title
添加到您的需求部分,
文件touch/src/Title.js
在应用程序目录中不存在并且
如果未找到文件,提供应用程序的 Web 服务器会提供 HTML 错误页面。
仅当定义 (Ext.define('Ext.Title'
) 未编译到 app.js 中时,您的应用程序才会尝试加载文件 touch/src/Title.js
。
通常,根本问题是您在文件中缺少requires
指令。 requires
指令在编译时进行评估,并将组件添加到 app.js
,因此您的应用不会尝试在运行时加载 Title.js
。如果您将需求添加到使用它的组件中:
Ext.define('MyOwnComponent',
requires: ['Ext.Title'], // <- add it here
constructor: function()
Ext.create('Ext.Title'); // <- if it is used e.g. here
);
然后再次编译您的应用程序,您应该一切顺利。如果你不知道它在哪里使用,你可以将它添加到你的 Application.js 中,其中也有一个 requires 部分:
Ext.define('MyApplication',
extend: 'Ext.app.Application',
requires: ['Ext.Title'], // <- add it here
stores:[],
...
);
【讨论】:
以上是关于错误:部署 sencha touch 应用程序后,即使文件已加载,也未声明以下类的主要内容,如果未能解决你的问题,请参考以下文章
Sencha Touch with WindowsPhone8: Ext.Loader 加载文件失败
在 Sencha Touch 2.2.1 中运行应用程序示例时出现 JavaScript 错误
商店排序后 Sencha Touch Pull to Refresh 不起作用