我目前正在工作中构建一个项目,需要我拉入一个对象数组,并将它们固定在地图上。
我将我的标记存储在一个数组中,这样当用户搜索不同的条件时,我就可以重置映射。
在我加入Smart Client之前,这一切都运行得很好。
我不太熟悉Smart Client,但它似乎将一个Array类对象添加到我的数组中,从而中断了我的for循环。
var wrap = (function() {
var arr;
function myFunc(a) {
for (var i in arr)
arr[i] = null; //doing this to set all markers to null
}
arr = [];
for (var i in a) {
arr.push(a[i]);
}
}
return {
doSomething: function(a) { myFunc(a); }
}
})();
wrap.doSomething([1,2,3,4]);
wrap.doSomething([1,2,3,4]);这给了我一个TypeError: undefined is not a function错误。
smartclient library,智能网关。我已经包含了以下文件。
<script>var isomorphicDir = "/smartclient/isomorphic/";</script>
<script src="/gmap/smartclient/isomorphic/system/modules/ISC_Core.js"></script>
<script src="/smartclient/isomorphic/system/modules/ISC_Foundation.js"></script>
<script src="/smartclient/isomorphic/system/modules/ISC_Containers.js"></script>
<script src="/smartclient/isomorphic/system/modules/ISC_Grids.js"></script>
<script src="/smartclient/isomorphic/system/modules/ISC_Forms.js"></script>
<script src="/smartclient/isomorphic/system/modules/ISC_DataBinding.js"></script>
<script src="/smartclient/isomorphic/skins/Enterprise/load_skin.js"></script>不管在我自己的js之前或之后初始化这些文件,我仍然得到相同的错误。
我对可行的替代方案持开放态度,它们提供了一个更好/更干净的解决方案,用javascript生成大型的、动态可排序和可分组的表。
发布于 2014-07-04 00:23:15
我也不熟悉智能客户端,但是您的代码中存在一个问题,它应该可以解释TypeError。wrap变量被设置为IIFE (从第1行开始的函数)的返回值。因为它不返回任何东西,所以wrap将是未定义的。doSomething只是一个生命周期的本地函数,所以你不能在它外部调用它。
此外,您的示例代码中的花括号似乎有问题?与}相比,{多了一个...
假设您更正了花括号的问题,您可以通过在wrap生命周期的末尾(在最后一个for循环之后)添加以下代码来解决此问题:
return {
doSomething: doSomething
};它应该将一个对象分配给wrap变量,
https://stackoverflow.com/questions/24558374
复制相似问题