Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Dojo: own widget  (Прочитано 8995 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Asver
Постоялец

by
Offline Offline
Пол: Мужской

« : 02-04-2007 12:53 » 

Начинаю изучать 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 Добавлял параметр
Код:
 id : 'myId',

При этом внешне все остается токое-же, но меню не появляется.

Может кто подскажет как это сделать?
Записан
RXL
Технический
Администратор

ru
Online Online
Пол: Мужской

WWW
« Ответ #1 : 02-04-2007 18:10 » 

Asver, в Test.js у тебя лишняя запятая. Php это прощает, но не js.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Asver
Постоялец

by
Offline Offline
Пол: Мужской

« Ответ #2 : 03-04-2007 09:57 » new

RXL,  где именно?
templateCssPath: dojo.uri.dojoUri("src/widget/asv/templates/Test.css"), - эта?

если ее убрать тогда неработает ни  в Firefox, ни в IE.
DEBUG: failed loading ./dojo/src/widget/asv/Day.js with error: [SyntaxError: missing } after property list, file: file:///D:/Temp/webtb/dojo/dojo.js, line: 117]
FATAL: Could not load 'asv.Test'; last tried '__package__.js'
Записан
RXL
Технический
Администратор

ru
Online Online
Пол: Мужской

WWW
« Ответ #3 : 03-04-2007 10:48 » 

Asver, очень просто: у тебя набор ошибок. Браузер, естественно, сперва ругается на первую ошибку синтаксиса, а после ее ликвидации - на следующую. Если FF что-то проигнорил (в чем у меня большие сомнения), то это еще не значит, что ошибки нет. Нужно следовать синтаксису языка.

Ищи ошибку внимательнее.
Я думаю, что приведенный код отличается от реального.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines