JSP マークアップによって参照される別の JavaScript モジュールを定義するときに、最新の Dojo1.9 AMD のベスト プラクティスに従おうとしています。以前は、同じ JSP ファイル MyJayEsspEe.jsp に大きな javascript セクションがありました。この javascript セクションは、さまざまな要素の onClick プロパティによって呼び出される関数を定義していました。ここで、Dojo 定義メカニズムを使用して、JavaScript を MyCallbacks.js という名前の新しいファイルに分離しています。
MyCallbacks.js の形式は次のようになります。
define(["dojo/dom", "dojo/dom-style", "dojo/has", "dijit/registry", "dojo/on"],
function (dom, domStyle, dojoHas, registry, on) {
...
function clickedOnButton1() {
console.log("Clicked on button1");
}
function clickedOnLinkTwo() {
console.log("Clicked on second link");
}
...
return {
clickedOnButton1: clickedOnButton1,
clickedOnLinkTwo: clickedOnLinkTwo
}
});
MyJayEsspEe.jsp ファイルには、現在、次のような醜いマークアップが含まれています。
...
<button data-dojo-type="dijit/form/Button" type="button" onclick="require(['commonjs/MyCallbacks'], function(mycallbacks) {mycallbacks.clickedOnButton1();});">First Button</button>
<a id="testLinkId" href="#" onclick="require(['commonjs/MyCallbacks'], function(mycallbacks) {mycallbacks.clickedOnLinkTwo();});">Link Two</a>
...
しかし、モジュールを定義して、マークアップで次のようなクリーンなコールバックを使用できるようにする方法があることを願っています。
...
<button data-dojo-type="dijit/form/Button" type="button" onclick="mycallbacks.clickedOnButton1();">First Button</button>
<a id="testLinkId" href="#" onclick="mycallbacks.clickedOnLinkTwo();">Link Two</a>
...
モジュールとコールバックを定義するための Dojo リファレンス ドキュメントを確認してきましたが、これまでのところ、私が探しているクリーンなソリューションへのポインターは見つかりませんでした。私が使用しているものよりもクリーンなソリューションはありますか?
時間をありがとう、グレゴール