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>

しかし、次に、各 eventHandler に themeId Button.EventHandler を追加する必要があります。

子のテーマにプロパティを設定する方法はありますか? Button.Command コントロールの子であるすべての eventHandlers にプロパティを設定しますか?

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 に答える