停止智能客户端添加Array类元素到我的数组

Stop Smart Client from adding an Array class element to my arrays

本文关键字:元素 我的 数组 Array 智能 客户端 添加      更新时间:2023-09-26

我目前正在工作中构建一个项目,需要我拉入一系列对象,并将它们钉在地图上。

我将我的标记存储在一个数组中,这样当用户搜索不同的条件时,我可以重置映射。
这一切都工作完美,直到我包括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库,smart gwt。我包含了以下文件:

<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

我也不熟悉智能客户端,但是你的代码中有一个问题应该可以解释TypeError。wrap变量被设置为IIFE(从第1行开始的函数)的返回值。因为它不返回任何东西,所以wrap将是未定义的。doSomething只是IIFE的一个局部函数,所以你不能在IIFE之外调用它。

另外,示例代码中的花括号似乎有问题?与}相比,{多了一个…

假设您使用花括号纠正了问题,您可以通过在换行IIFE的末尾(在最后一个for循环之后)添加以下内容来消除它:

return {
    doSomething: doSomething
};

将对象赋值给wrap变量