我知道Button.command是普通按钮的主题ID,我可以为它设置属性.我知道eventHandlers默认没有主题ID.因此,为了集中设置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>
Run Code Online (Sandbox Code Playgroud)
但是我需要将themeId Button.EventHandler添加到每个eventHandler中.
有没有办法在子主题的主题中设置属性,所以在所有作为Button.Command控件子项的eventHandler上设置属性?
我无法帮助您解决您的主题问题,但也许我可以为您提供一般问题的解决方案。
我假设您尝试实现的目标是将一些不错的加载器附加到所有部分刷新事件。这可以通过使用 dojo.subscribe API 在较低级别上完成: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();
});
Run Code Online (Sandbox Code Playgroud)
此代码必须在应用程序启动时运行(onClientLoad 事件就可以了)