【问题标题】:How to split Qooxdoo project into logical separate .JS files如何将 Qooxdoo 项目拆分为逻辑上单独的 .JS 文件
【发布时间】:2022-06-17 21:38:08
【问题描述】:

我正在尝试在 Qooxdoo 应用程序中使用 Javascript 中的导入和导出模块功能。

我想在我的主应用程序中创建一个在下面的 session.js(见文件内容)中定义的“会话”实例,但导入语句:

"从'session.js'导入{session);"

需要在代码链中比 application.js 更高? (当我尝试这种方法时,我收到一个错误消息)。我不确定导入语句还能去哪里?我尝试了其他一些 .JS 项目文件,但没有成功。

在应用程序代码中,我将使用以下内容创建一个新的会话实例:

"让 mysession = new session();"

这是我的理论!

我要做的只是将代码拆分为单独的 .js 文件,以便于管理。

“包含”文件将仅用于此项目。我正在更新它们。所以我不想在构建 application.js 文件时单独重建它们。

我可能把这种方法弄得太复杂了。

几年前我玩过一个非常旧的 Qooxdoo 版本,但现在的 Qooxdoo 显然非常不同。根据我的旧代码,似乎可以通过使用诸如“var session = test.general.session.getInstance();”之类的 Javascript 语句来引用其他文件。但这似乎不再有效?

如果有人能指出我正确的方向,我将不胜感激。我搜索了 Qooxdoo 网站,但似乎找不到任何相关内容,当然我可能错过了我要找的东西!

提前致谢。

丽莎。

文件“session.js”的非常简略的内容。

qx.Class.define('session',
{
  extend : qx.core.Object,
  type : 'singleton',

  construct: function ()
  {
    this.base(arguments);
    this.datasetName = 'Test Dataset';
    this.userFirstName = 'Dave';
    this.userSurname = 'Smith';
  },

  members:
  {
    datasetName : null,
    userFirstName : null,
    userSurname : null,
    tblmdlOpenForms : null,
    currentOpenForm : null,
    currentOpenWindow : null,
    __OpenFormIndex : null,

    __menuOptionAlreadyOpen : function(option)
    {
      if (this.currentOpenForm == option)
        return true
      else
        return false
    },   
}
});

export {session};

【问题讨论】:

    标签: javascript qooxdoo


    【解决方案1】:

    qooxdoo 依赖系统不同。无需在源代码中手动包含 qooxdoo 类。它在编译期间自动完成(发现依赖关系,链接它们等)。如果您使用桌面版的 qooxdoo 导入和导出不起作用,它们只是不需要。

    您有一个项目名称,必须在类名称中使用。例如,您的项目名为 myproject,并且您在该项目中包含了会话文件。在这种情况下,完整的类名必须是 myproject.session。

    现在关于 getInstance 方法。该方法仍然存在,您可以使用它,但只能用于单例类。无法正确理解你想用它做什么。如果您对此提出单独的问题会很好。

    如果您想包含其他脚本(非 qooxdoo 模块或文件),请阅读此here

    【讨论】:

      猜你喜欢
      • 2018-07-31
      • 1970-01-01
      • 1970-01-01
      • 2019-11-06
      • 2019-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多