Свойства настройки темы для дочернего элемента управления

Я знаю, что Button.command - это идентификатор темы для обычных кнопок, и я могу установить для него свойства. И я знаю, что eventHandlers по умолчанию не имеет идентификатора темы. Поэтому, чтобы установить свойства eventHandler централизованно, я исторически добавил то, что у меня было в моей теме:

<control>
        <name>Button.EventHandler</name>
        <property mode="override">
            <name>onStart</name>
            <value>loading();</value>
        </property>
        <property mode="override">
            <name>onError</name>
            <value>stoploading();</value>
        </property>
        <property mode="override">
            <name>onComplete</name>
            <value>stoploading();</value>
        </property>
    </control>

Но мне нужно добавить темуId Button.EventHandler для каждого eventHandler.

Есть ли способ установить свойства в теме для детей, поэтому задайте свойства для всех eventHandlers, которые являются дочерними элементами Button.Command?

Ответ 1

Я не могу помочь вам решить вашу проблему темы, но, возможно, я могу дать вам решение общей проблемы.

Я предполагаю, что то, что вы пытаетесь достичь, - это прикрепить некоторый красивый загрузчик ко всем событиям частичного обновления. Это можно сделать на более низком уровне с помощью API dojo.subscribe: http://dojotoolkit.org/reference-guide/1.6/dojo/subscribe.html

Пример кода:

// we need to activate io events
dojo.config.ioPublish = true
dojo.subscribe("/dojo/io/send", function(/*dojo.Deferred*/dfd){
    loading();
});
dojo.subscribe("/dojo/io/stop", function(){
    stoploading();
});

Этот код должен быть запущен при запуске приложения (событие onClientLoad будет просто отлично)