Я пытаюсь создать простой виджет с dojo 1.9 внутри приложения Worklight 6.0, но я сталкиваюсь с такими проблемами, я слишком долго возился с ним Вероятно, некоторые просты.Конструктор пользовательского виджета dojo не найден
Здесь вы можете найти структуру моего приложения Worklight:
Я создал подпапки, которые будут содержать мои JavaScript файлы (виджеты и т.д.).
Это мой основной HTML-файл: http://jsfiddle.net/d8K69/ Самое главное:
var dojoConfig = { isDebug : true, async : true, parseOnLoad : true, mblHideAddressBar: false, packages : [ { "name" : "playground", "location" : "js/playground" } ] };
<div id="header" data-dojo-type="playground.HeaderWidget"></div>
код пользовательского виджета можно найти здесь: http://jsfiddle.net/T9Tfq/2/
define([ "dojo/_base/declare",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
"dojo/text!js/playground/widgets/header/HeaderWidget.html" ],
function(declare, _WidgetBase, _TemplatedMixin, template) {
WL.Logger.debug("HeaderWidget.js: init.");
return declare("playground.HeaderWidget", null, [_WidgetBase, _TemplatedMixin], {
headerTitle: "Default header title",
templateString: template,
postCreate: function() {
// Get a DOM node reference for the root of our widget
//var domNode = this.domNode;
baseClass: "headerWidget";
// Run any parent postCreate processes - can be done at any point
this.inherited(arguments);
this.headerTitle.style.color = "red";
}
});
});
Я немного запутался о том, как имя модуля в определении, пакеты в dojoConfig и включая (требуют) в других файлах javascript точно воспроизводятся вместе. В настоящее время я получаю эту ошибку:
dojo/parser::parse() error
Error: Unable to resolve constructor for: 'playground.HeaderWidget'
При попытке это в другой файл Javascript:
require([ "js/playground/widgets/header/HeaderWidget"], function(HeaderWidget) {
WL.Logger.debug("DOING SOMETHING WITH MY WIDGET");
Кажется работать (хотя я на самом деле не создать headerwidget еще programmaticly, это не кажется чтобы преуспеть
После короткой сессии с Dimitri M мы обнаружили некоторые проблемы в моем виджете: - Неверный параметр, переданный, чтобы объявить действительно, как указано выше - В виджетах: baseClass: "headerWidget"; определяется не в том месте, это должно быть вне postConstruct Использование идентификатора MODULE для виджета, похоже, не работает. –