我正在学习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();
}
}
});
答案 0 :(得分:2)
非常好,你自己解决了所有问题:-)。是的,教程文本在这一点上是模棱两可的,我将提交一个错误来解决这个问题。
通常,qooxdoo使用“封闭形式”作为其类定义。与特定类相关的每个信息都在这个传递给qx.Class.define
的大地图中。本手册详细解释了类定义的各种元素,也许您觉得有用(参见例如here)。
另一方面,你首先做的是完全合法的JavaScript,所以你没有得到任何会导致生成器立即退出的语法错误。但是,您应该在生成器输出中看到警告。