ошибка qooxdoo (qx.html не определен) - PullRequest
1 голос
/ 11 июня 2011

Я изучаю 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); 

Я попытался запустить generate.py с source-all и даже build, но безрезультатно. Может кто-нибудь, пожалуйста, помогите мне, мне действительно нужно начать с этим (я потратил два дня, пытаясь работать с капучино и SproutCore ... бесполезно)

UPDATE Я решил проблему. Видимо, я печатал код окна вне определения класса приложения. В мою защиту учебник сказал "добавь это в конец файла 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 Ответ

2 голосов
/ 11 июня 2011

Очень хорошо, вы все решили самостоятельно :-).Да, текст урока неоднозначен в этом вопросе, и я опубликую ошибку, чтобы исправить это.

В общем, qooxdoo использует «закрытую форму» для определения своего класса.Вся информация, относящаяся к определенному классу, находится на этой большой карте, которая передается в qx.Class.define.В руководстве дается подробное объяснение различных элементов определения класса, может быть, вы найдете это полезным (см., Например, здесь ).

С другой стороны, то, что вы сделали первым, совершенно законноJavaScript, поэтому вы не получили никаких синтаксических ошибок, которые могли бы привести к немедленному завершению работы генератора.Однако вы должны были увидеть предупреждение на выходе генератора.

...