2008-10-23 3 views
2

Я играл с DWR и конвертерами некоторое время, и я действительно хотел отобразить свои классы Java в классы JavaScript. Используя DWR-конвертеры, у меня есть возможность указать, что такое имя моего конструктора JS, заданного классом Java. Пока что так хорошо ... Проблема возникает, когда мой конструктор JS находится в JS-подобном имени (как и в системе пакетов YUI, например my.beautiful.package.MyClass). Текущая реализация DWR не позволяет мне использовать такую ​​конструкцию, давая мне SyntaxError, когда я пытаюсь ее использовать. Есть ли элегантный способ обойти это ограничение?Классы Javascript и DWR

+0

У меня нет обходного пути, но для вашей информации есть открытая проблема об этом: http://bugs.directwebremoting.org/bugs/browse/DWR-103 Если я ошибаюсь, и это не так то же самое, что и вы описали, дайте мне знать и я удалю этот комментарий. – Barth 2008-10-28 14:43:29

+0

Правильно, интересно, исправят ли они это только для версии 3. Здесь мы еще используем версию 2. – 2008-10-29 11:46:11

ответ

1

Насколько я знаю, это невозможно напрямую. У меня есть в моей нынешней работе проекта экспериментировал с повышением каждый возвращенный объект на стороне клиента с помощью методов из класса Javascript, который получает результат, который я думаю, что вы заинтересованы в.

DwrService.getThings({ 
    callback:function(things){ 
    for(thing in things){ 
     YAHOO.augmentProto(thing, my.beautiful.package.MyClass); 
    } 
    // do your stuff here 
    } 
}); 

Я должен буду проверить на работа в понедельник (сейчас в воскресенье), что augmentProto является правильным для использования, но я думаю, что это так. Там может быть даже лучший крючок в DWR, который позволит вам сделать это на лету автоматически.