Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExtJs 5.0:IE8中不工作的对象数组上的forEach_Javascript_Internet Explorer_Extjs_Foreach_Extjs5 - Fatal编程技术网

Javascript ExtJs 5.0:IE8中不工作的对象数组上的forEach

Javascript ExtJs 5.0:IE8中不工作的对象数组上的forEach,javascript,internet-explorer,extjs,foreach,extjs5,Javascript,Internet Explorer,Extjs,Foreach,Extjs5,我有一个简单的模型- Ext.define('MyModel', { extend: 'Ext.data.Model', requires: [ 'Ext.data.field.String' ], fields: [ { type: 'string', name: 'currentA' }, { type: 'string'

我有一个简单的模型-

Ext.define('MyModel', {
    extend: 'Ext.data.Model',

    requires: [
        'Ext.data.field.String'
    ],

    fields: [
        {
            type: 'string',
            name: 'currentA'
        },
        {
            type: 'string',
            name: 'currentB'
        },
        {
            name: 'A'
        },
        {
            name: 'B'
        }
    ]
});
{
  "currentA": "a",
  "currentB": "b",
  "A": [
    {
      "name": "a",
      "id": 1
    }
  ],
  "B": [
    {
      "name": "b",
      "id": 2
    }
  ]
}
下面是我对该模型的数据所做的一些操作-

 onBeforeRender: function(component, eOpts) {
    var mystore = Ext.getStore('Mystore');
    mystore.load({
        callback: function(){
            var entity = headerStore.getAt(0);
            var bs = entity.data.B;
            var as = entity.data.A;
            var currentB = entity.data.currentB;
            var currentA = entity.data.currentA;

            bs.forEach(function(record) {
                // do some operations
            });
            as.forEach(function(record) {
                // do some other operations
            });
        }
    });
}
现在,当迭代变量“bs”(显然是一个对象数组)时,IE 8会抱怨

“对象不支持此属性或方法”

对于forEach函数。这在铬上很好用

以下是模型的json-

Ext.define('MyModel', {
    extend: 'Ext.data.Model',

    requires: [
        'Ext.data.field.String'
    ],

    fields: [
        {
            type: 'string',
            name: 'currentA'
        },
        {
            type: 'string',
            name: 'currentB'
        },
        {
            name: 'A'
        },
        {
            name: 'B'
        }
    ]
});
{
  "currentA": "a",
  "currentB": "b",
  "A": [
    {
      "name": "a",
      "id": 1
    }
  ],
  "B": [
    {
      "name": "b",
      "id": 2
    }
  ]
}

为什么IE不能将其识别为数组?

因为IE8没有在数组上实现forEach

使用
Ext.Array.forEach

您可以从
Ext.Array
使用,因为IE8不支持


[].forEach
不依赖于ExtJS版本,因为这是在
ES5
标准中添加的JS数组方法。从中可以看到哪个浏览器支持
forEach
方法

Mystore是该模型的存储库。相同的代码已经在IE 8中使用extjs 4.2。您可能已经包含了一些其他库。我没有看到任何外部库。不管怎样,目前这不是问题。我只是好奇。