dojoAttachpoint和id有什么区别。

时间:2012-06-15 18:43:13

标签: dojo

<div dojoType="dojo.Dialog" id="alarmCatDialog" bgColor="#FFFFFF" 
     bgOpacity="0.4" toggle="standard">
   <div class='dijitInline'>
       <input type='input' class='dateWidgetInput' 
        dojoAttachPoint='numberOfDateNode' selected="true" />
</div>

如何显示此对话框我尝试dijit.byId('alarmCatDialog').show();

上面的代码是一个模板,我从.js文件中调用了dijit.byId('alarmCatDialog').show()

1 个答案:

答案 0 :(得分:1)

dojoAttachPoint用于模板中,可以使用属性值在窗口小部件中访问。

因此,如果您发布的html用于小部件模板,那么您应该使用dojoAttachPoint。在小部件的js文件中:

dojo.declare("MyWidget", [dijit._Widget, dijit._Templated], {

  alarmCatDialog: null, // the dialog widget will be attached to this field.

  templateString: dojo.cache(...), 

  widgetsInTemplate: true,

  postCreate: function() {
    this.inherited(arguments);

    this.alarmCatDialog.show();
  }
});

您不应在窗口小部件中使用id,因为ID必须在所有dom节点中都是唯一的。在窗口小部件中使用它会限制窗口小部件在页面上的使用。

此外,由于模板中有小部件,因此您应使用widgetsInTemplate: true

http://dojotoolkit.org/reference-guide/1.7/dijit/_Templated.html#widgetsintemplate