1.如果在小部件a的模板文件中使用了其他的小部件b,那么就需要在a的js文件中也要引入b的路径,并且a还要继承自dijit/_WidgetsInTemplateMixin,否则无法正确解析a中的b小部件。
2.使用on、topic.subscribe、aspect.before、aspect.after都会返回一个handler对象,该对象有个一个remove方法,在小部件中使用以上几个方法时,要使用this.own(handler)将事件的handler包起来,这样小部件在执行destroy的时候会自动执行handler.remove(),从而自动释放资源。或者也可以在模板文件中绑定事件,例如data-dojo-attach-event="click:_click",这样小部件在销毁的时候也会自动释放资源。
3.移除dijit/form/Select中所有的option:select.removeOption(select.getOptions());
4.获取dijit/form/Select当前显示的label: select.get('value',displayedValue);
5.require.toUrl(packageName)用于获取绝对路径,例如:
popupCallbackPage: window.location.protocol + "//" + window.location.host + require.toUrl("jimu") + "/oauth-callback.html",
6.不要给dijit/form/ComboBox设置height,否则其会显示不正确
7.在使用dojo设置dom节点的样式时,如果样式名是以驼峰命名方式书写的,那么在所有浏览器上运行都正常,如果样式名是以破折号断开的方式书写的,那么会在Firefox上无法设置样式。例如html.setStyle(dom,'backgroundColor','#f00')在所有浏览器上运行正常,但是html.setStyle(dom,'background-color','#f00')在Firefox上运行无效。
8.可以给某个dom节点设置多个attach-point名称,例如data-dojo-attach-point="textbox,focusNode"。
9.继承自ValidationTextBox类的dijit可以通过如下方式编程式的显示其验证信息:
ValidationTextBox.focusNode.focus(); ValidationTextBox.focusNode.blur();
10.设置dijit.form.Select中的文字部分为固定宽度的样式
.dijitSelectLabel.dijitValidationTextBoxLabel{ width:52px;max-width:52px;overflow:hidden; }