【发布时间】:2013-04-29 07:34:40
【问题描述】:
IBM 的 Dojo 和 iWidgets:
所以我的iWidget代码如下:
onEdit : function() {
dojo.require(["dijit/Dialog", "dojo/dom"], function(Dialog, dom){
var node = dom.byId("makeADialog");
var myDialog = new Dialog({ title:"From Source Node" }, node);
myDialog.show();
});
},
当我运行它时 - chrome 浏览器控制台显示:
com.ibm.mm.iwidget.widget.IWidgetWrapperExtendedImpl IWidgetWrapper._handleEventInternal: widget: testWidget, eventName: onedit, HandleEventException: TypeError: Object [object Array] has no method 'split'
怎么了?
【问题讨论】:
-
我会使用 javascript 调试器来查看发生错误的调用堆栈。既然您提到了 chrome - 您可以通过打开源面板并单击左下角的暂停按钮来设置“错误中断”。我完全在猜测,但我怀疑您使用的是旧版
dojo.require,就好像它是较新的 AMDrequire。dojo.require只需要一个字符串参数,并且是同步的,以及其他差异。您可能应该检查您使用的是哪个版本的 dojo,如果您想要 AMDrequire,只需使用require。 -
我的 Eclipce IDE 中有 1.8.3,哎呀! 1.4.3_IBM (21629) 在 IBM 通用测试客户端中分别用于 iWidget 和 Business Space 运行时。那我现在该怎么办?
-
这完全取决于您,显而易见的选择是更改您的代码以使其适用于 dojo 1.4.3,或者尝试以某种方式更改您的环境以加载更新版本的 dojo。
标签: dojo widget websphere-7