DojoDataGridにカスタムフォーマッターを追加しようとしています。このフォーマッターは、私が理解している限り、プレゼンテーション用にhtmlを含む文字列を返すことになっています。
クリックしたときにjsコールバックでリンクをレンダリングしたい、つまり
<a href="javascript:void(0)" onclick="callMeBack()">value</a>
問題は、グローバル関数を使用したくないということですがcallMeBack()
、コールバック関数をインラインで記述します。しかし、私はこれを機能させることができないようです。これまで私はこれを書いた:
function callMeBack() { ... }
var structure = [
{name:"name", field:"name", width: "200px", formatter: function(name) {
var link = domConstruct.create("a", {innerHTML: name});
domAttr.set(link, "href", "javascript:void(0)");
on(link, "click", callMeBack);
return link.outerHTML;
}},
....
];
問題は、クリックコールバックが登録されないことのようです。グリッドで使用されるDOMノードは、文字列表現が返された後に構築される可能性があることを考えると、かなり理解できます。
しかし、どうすればこれを機能させることができますか?