10

我知道 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>

但是我需要将 themeId Button.EventHandler 添加到每个 eventHandler 中。

有没有办法在子主题中设置属性,所以在所有作为 Button.Command 控件的子事件处理程序上设置属性?

4

1 回答 1

0

我无法帮助您解决您的主题问题,但也许我可以为您提供一般问题的解决方案。

我假设您尝试实现的是将一些不错的加载器附加到所有部分刷新事件。这可以通过使用 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();
});

此代码必须在应用程序启动时运行(onClientLoad 事件就可以了)

于 2013-11-01T20:30:42.053 回答