qooxdoo错误(qx.html未定义)

时间:2011-06-10 23:13:23

标签: javascript frameworks qooxdoo

我正在学习qooxdoo(我觉得这真是太棒了,因为我真的理解它)。 不幸的是,在关注twitter客户端教程时,我在加载页面时遇到了错误。

创建新的类文件MainWindow.js

之后
qx.Class.define("twitter.MainWindow",
{
    extend: qx.ui.window.Window,

    construct : function()
    {
        this.base(arguments, "Tweeter");
    }
});

我转到Application.js类文件并添加

var main = new twitter.MainWindow();
    main.open();

应该让我看到小窗口。

运行generate.py source后 我在firebug中得到了这个错误

qx.html is undefined
[Break On This Error] return new qx.html.Element("div", styles, attributes); 

我尝试使用source-all甚至build运行generate.py,但无济于事。 有人可以帮助我,我真的需要开始这个(我浪费了两天尝试使用卡布奇诺和SproutCore ......没用)

更新 我解决了这个问题。显然,我在应用程序类定义之外键入了窗口代码。在我的辩护中,教程说“将其添加到Application.js文件的末尾”

所以这个


qx.Class.define("twitter.Application",
{
  extend : qx.application.Standalone,

  members :
  {
    main : function()
    {
      // Call super class
      this.base(arguments);

      // Enable logging in debug variant
      if (qx.core.Environment.get("qx.debug"))
      {
        qx.log.appender.Native;
        qx.log.appender.Console;
      }


    }
  }
});

var main = new twitter.MainWindow();
        main.open();

应该是


qx.Class.define("twitter.Application",
{
  extend : qx.application.Standalone,

  members :
  {

    main : function()
    {
      // Call super class
      this.base(arguments);

      // Enable logging in debug variant
      if (qx.core.Environment.get("qx.debug"))
      {
        qx.log.appender.Native;
        qx.log.appender.Console;
      }

      var main = new twitter.MainWindow();
        main.open();
    }
  }
});

1 个答案:

答案 0 :(得分:2)

非常好,你自己解决了所有问题:-)。是的,教程文本在这一点上是模棱两可的,我将提交一个错误来解决这个问题。

通常,qooxdoo使用“封闭形式”作为其类定义。与特定类相关的每个信息都在这个传递给qx.Class.define的大地图中。本手册详细解释了类定义的各种元素,也许您觉得有用(参见例如here)。

另一方面,你首先做的是完全合法的JavaScript,所以你没有得到任何会导致生成器立即退出的语法错误。但是,您应该在生成器输出中看到警告。