1

Web アプリを dojo 1.5 から 1.8 (または 1.7.3) にアップグレードする作業を行っています。このアプリには、dijit.Dialog から継承するいくつかのカスタム テンプレート ウィジェットがあります。これらがまったく正しくレンダリングされていないことがわかりました。例については、http://jsfiddle.net/tinyels/XhrWF/1/を参照してください。

dojo 1.5 または 1.6 に設定すると、正しくレイアウトされます。1.7 では、show(). 1.8 では、さまざまなアタッチポイントが欠落しており、ボタンが機能しません。デバッガーで調べると、いくつかのアタッチポイント (titleBar、titleNode、closeButtonNode、closeText、containerNode、gridContainer) しかなく、btnGo などのいくつかが欠けていることがわかります。

新しいバージョンの Dojo でウィジェット (またはそのテンプレート) を機能させるには、ウィジェット (またはそのテンプレート) にどのような変更を加える必要がありますか?

4

1 に答える 1

1

widgetsInTemplateDojo1.7以降では機能しなくなったと思います。テンプレートはまったく解析されません。dojo.parser.parse(this.containerNode)手動で(たとえば)を呼び出すことはできpostCreateますが、参照が欠落dojoAttachPointしてdojoAttachEvent生成されます。

テンプレートにウィジェットを含めるDojo1.7以降の方法は、次の場合にサブクラス化dijit/_WidgetsInTemplateMixinすることです。

dojo.require("dijit._WidgetsInTemplateMixin");

dojo.declare("imed.widgets.DapDialog", [dijit.Dialog, dijit._WidgetsInTemplateMixin], {});

そして、すべてが以前と同じように機能するはずです。jsFiddleで試してみてください:http://jsfiddle.net/phusick/UEXmF/

于 2012-08-29T07:46:34.723 に答える