2013-02-13 5 views
0

Кто-нибудь может помочь мне применить шаблон декоратора на виджетах Dijit?Dojo виджеты и декоратор картины?

Например, с учетом FormA_Widget, который показывает форму с некоторыми текстами ввода и кнопками. Идея заключается в том, чтобы создать FormB_Widget, который «проходит» FormA_Widget украсив его еще несколько переключателей, входы и т.д.

Я знаю, как создать шаблонный пользовательский виджет, а также как «расширить» виджет, что мне нужно знать, как «впрыснуть» шаблон FormB_Widget на каком-то месте в FormA_widget добавить нужный «decoration2

Спасибо заранее

ответ

1

Заканчивать пример я создал:.. http://plnkr.co/edit/dGMJ8UBQ9dT3dGQPQSeu?p=preview

Это самый простой из возможных решений, но это требует несколько крошечных изменений в FormA:

FormA.js:

var FormA = declare([_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], { 
    templateString: template, 

    templateExtensionString: "" // <= add `templateExtensionString` property 
}); 

FormA.html - добавить templateExtensionString заполнитель в шаблон виджета:

<div> 
    <div><!-- FormA markup --></div> 

    <div>${!templateExtensionString}</div> 

    <div><!-- FormA markup --></div> 
</div> 

NB: Для предотвращения _TemplatedMixin от экранирования цитат внутри строки, поместите «!» перед полным именем переменной.

Теперь вы можете продлить FormA:

var FormB = declare([FormA], { 

    templateExtensionString: template // FormB template (dojo/text!./FormB.html) 

}); 

В случае, если вы не можете изменить FormA взглянуть на мой ответ на Dojo Dialog with confirmation button и рассмотреть вопрос о применении аналогичной стратегии здесь.

+0

Спасибо за ваше время, строя образец кода. – EricSonaron

Смежные вопросы