我有一个 dojo 小部件。对于小部件,我有 2 个文件 A.js 和 A.html。现在在 A.html 中我有类似的东西
<div id ="xyz" dojoAttachpoint="xyz"> </div>
上面的行是小部件模板中的一行,它是一个普通的 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 时,它工作得很好。
您无法在模板中对小部件的 ID 进行硬编码。 id 必须唯一地标识小部件类型的实例,因此必须在创建时给出。
例如,您可以在 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>
and js:
dijit.byId("myA").xyz.innerHTML = "some text";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)