ユーザーのページにラベルと入力ボックスを追加する Dojo ウィジェットを作成しています。
のfor
属性にはlabel
HTML ID 値が必要ですが、同じページに複数のインスタンスが作成される場合に備えて、Dojo ウィジェットに ID を含めることはできません。
では、これらの相反するニーズを回避する方法について何か提案はありますか?
箱から出して、これは、構築中に構成パラメーターが存在しない場合に、dijitレジストリがWidgetID(this.id)を設定する方法です。
constructor: function(args) { args=args || {};
this.id = args.id || dijit.registry.getUniqueId(this.declaredClass)
}
テンプレートは文字列の置換で機能するため、クラスにfooなどのプロパティがある場合、これをテンプレートに配置する方法は次のとおりです。
templateString = '<div class="${foo}">';
あなたの場合、テンプレートのどこかにlabel-> inputペアがある場合、次のようになります。
<div><!--domNode-->
<table>
<td><label for="${id}-edit-title">Title</label></td>
<td><input id="${id}-edit-title" type="text" /></td>
</table>
</div>
それで
とりあえず少し時代遅れですが、ここから始めるのはとても良い場所です:http: //dojotoolkit.org/documentation/tutorials/1.6/templated/
dojo.Stateful
get/setメカニズムの続きを読む
最後にに目を向けdijit._WidgetsInTemplateMixin
ます。