我在创建“日历”对象的项目中已有 javascript。该对象是window
的成员。
当我将 smartgwt 添加到项目中时,原来的 Calendar 对象被 smartgwt 中打包的 smartclient 日历(ISC_Calendar)覆盖。
使用基于浏览器的 JS 调试器,我发现 smartgwt 中的所有 JS 对象都包含在 window
和 window.isc
中。我绝对不希望它们全部位于窗口级别,因为它们中的许多都有通用名称,例如日历。
在我的例子中,有问题的文件是 ISC_Calendar.js,在 gwt 编译后,它最终出现在 war/isc.ClassFactory.defineClass("Calendar","Canvas","DataBoundComponent");
GWT编译位置:war/projectname/sc/modules/ISC_Calendar.js
jar位置:com.smartclient public/sc/modules/ISC_Calendar.js
源位置:找不到
我想我可以更改我正在使用的 jar 中的 javascript 文件,但这并不能真正解决更大的问题。我不想担心将来会遇到命名空间问题
最佳答案
您必须设置
var isc_useSimpleNames = false;
在加载任何 SmartClient 组件之前的脚本标记中。这样 SC 将仅在 isc.* 命名空间中注册类。
关于javascript - 如何防止 smartgwt 污染窗口命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3284447/