错误:在部署sencha touch应用程序之后,即使已经加载了文件,也未声明以下类

时间:2017-07-03 10:31:48

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

  

未捕获的SyntaxError:意外的令牌<煎茶-touch.js:8618

     

未捕获错误:即使他们的类别,也未声明以下类   文件已加载:'Ext.Title'。请检查源代码   他们对应的可能打字错误的文件:'touch / src / Title.js       at Object.onFileLoaded(sencha-touch.js:8618)       在对象。 (煎茶-touch.js:3267)       在HTMLScriptElement.onLoadFn(sencha-touch.js:8275)

1 个答案:

答案 0 :(得分:0)

第一个错误表示某个文件已加载但未包含预期的JSON或JavaScript。相反,该文件包含HTML或XML。

第二个错误表示文件touch/src/Title.js不包含Ext.define('Ext.Title', ...)

如果以下情况成立,则会发生这两个错误:

  • 您的应用程序使用Ext.Title
  • 您没有将Ext.Title添加到您的要求部分,
  • 文件touch/src/Title.js在应用程序目录和
  • 中不存在
  • 如果找不到文件,提供应用程序的Web服务器会提供HTML错误页面。

仅当定义(touch/src/Title.js)未编译到app.js时,您的应用程序才会尝试加载文件Ext.define('Ext.Title'

通常,潜在的问题是您在文件中缺少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,它还有一个需求部分:

Ext.define('MyApplication',{
    extend: 'Ext.app.Application',
    requires: ['Ext.Title'], // <- add it here
    stores:[],
    ...
});