11

ユーザーのページにラベルと入力ボックスを追加する Dojo ウィジェットを作成しています。

for属性にはlabelHTML ID 値が必要ですが、同じページに複数のインスタンスが作成される場合に備えて、Dojo ウィジェットに ID を含めることはできません。

では、これらの相反するニーズを回避する方法について何か提案はありますか?

4

1 に答える 1

21

箱から出して、これは、構築中に構成パラメーターが存在しない場合に、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.Statefulget/setメカニズムの続きを読む

最後にに目を向けdijit._WidgetsInTemplateMixinます。

于 2012-06-25T03:45:12.380 に答える