【问题标题】:Error : The following classes are not declared even if their files have been loaded" after deploying sencha touch application错误:部署 sencha touch 应用程序后,即使文件已加载,也未声明以下类
【发布时间】: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)

【问题讨论】:

    标签: extjs sencha-touch sencha-touch-2 sencha-touch-2.2


    【解决方案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:[],
        ...
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      相关资源
      最近更新 更多