我有一个dojo小部件。对于小部件我在A.html中有2个文件A.js和A.html.Now我有类似的东西
<div id ="xyz" dojoAttachpoint="xyz"> </div>
以上行是widget模板中的一行,它是一个普通的html div
现在在A.js我对服务器进行异步调用。在远程方法的回调函数中,我想修改span xyz的文本。我尝试了3种方法,但没有一种方法正常工作。
1)dojo.byId("xyz").innerHTML = "some text"
2)this.xyz.innerHTML ="some text"
3)
var myWidget = dijit.byId("pack1.abc.widget.widgetname_id");
myWidget.xyz.innerHTML ="some text"
上述方法均无效。
当我在A.js的其他函数中使用方法1(非回调函数)时,它工作正常。
答案 0 :(得分:1)
您无法在其模板中对小部件的ID进行硬编码。 id必须唯一地标识widget类型的实例,因此必须在创建时给出它。
例如,您可以在js:
中执行类似程序操作var myA = new myWidgets.A({});
myA.startup();
myA.xyz.innerHTML = "some text"
或以html声明:
<div data-dojo-type="myWidgets.A" data-dojo-props="id:'myA'"></div>
和js:
dijit.byId("myA").xyz.innerHTML = "some text";