Начинаю изучать dojo и у меня такая проблема:
делаю свой widget. Это должен быть простой прямоугольник с текстом. При правом клике мышью на нем должно появлятся меню. При выборе пункта меню - менятся текст в прямоугольнике.
Для начала написал след. код.
Файл Test.js.dojo.provide("asv.Test");
dojo.require("dojo.widget.Menu2");
dojo.require("dojo.event.*");
dojo.widget.defineWidget(
// widget name and class
"asv.Test",
// superclass
dojo.widget.HtmlWidget,
// properties and methods
{
// parameters
text: "",
// settings
templatePath: dojo.uri.dojoUri("src/widget/asv/templates/Test.html"),
templateCssPath: dojo.uri.dojoUri("src/widget/asv/templates/Test.css"),
}
);
Файл Test.html<div class='day'>${this.text}</div>
Файл index.html<html>
<head>
<title>My Demo</title>
<script type="text/javascript"> djConfig = { isDebug: true }; </script>
<script type="text/javascript" src="./dojo/dojo.js"></script>
<script type="text/javascript">
dojo.setModulePrefix('asv', 'src/widget/asv');
dojo.widget.manager.registerWidgetPackage('asv');
dojo.require("asv.Test");
</script>
</head>
<body>
<div dojoType="Test" text="2" onClick="this.text='M1';"></div>
<div dojoType="Test" text="3" onClick="this.text='M1';"></div>
<div dojoType="Test" text="4" onClick="this.text='M1';"></div>
</body>
</html>
Проблема 1:
В Firefox это отображается нормально, а в IE выдает:
DEBUG: failed loading ./dojo/src/widget/asv/Test.js with error: [SyntaxError: Предполагается наличие идентификатора, строки или числа]
FATAL: Could not load 'asv.Day'; last tried '__package__.js'
DEBUG: no tag handler registed for type: dojo:Test
DEBUG: no tag handler registed for type: dojo:Test
DEBUG: no tag handler registed for type: dojo:TestПроблема 2:
Не получается прикрутить меню в виджету.
Пытался делать так:
Test.html<div>
<div dojoType="PopupMenu2" targetNodeIds="${this.id}">
<div dojoType="MenuItem2" caption="MENU1"></div>
<div dojoType="MenuItem2" caption="MENU2"></div>
<div dojoType="MenuItem2" caption="MENU3"></div>
</div>
<div class='day' id='${this.id}'>${this.text}</div>
</div>
В Test.js Добавлял параметр
При этом внешне все остается токое-же, но меню не появляется.
Может кто подскажет как это сделать?