【问题标题】:Ext js store has Many copy to another storeExt js 商店有很多副本到另一个商店
【发布时间】:2015-10-13 03:10:33
【问题描述】:

我有具有 hasMany 属性的数据存储“a”,尝试通过使用以下代码复制“a”的 hasMany 记录来创建新的存储“b”,但是当我将 b 存储用于组合框时,它会抛出错误说 record.length未定义

var b = Ext.create("Ext.data.store"{
model:'service'});
Ext.getStore("a").each(function(record,id){
for(var i in record){
b.add(record.raw.subservice);
}
})

【问题讨论】:

    标签: javascript extjs extjs4


    【解决方案1】:

    它对我有用,试试这个。希望对你有帮助。

    function deepCloneStore (source) {
        var target = Ext.create ('Ext.data.Store', {
            model: source.model
        });
        Ext.each (source.getRange (), function (record) {
            var newRecordData = Ext.clone (record.copy().data);
            var model = new source.model (newRecordData, newRecordData.id);
            target.add (model);
        });
        return target;
    }
    

    source code reference

    【讨论】:

      【解决方案2】:

      您正在尝试迭代存储,而不是您需要迭代 store.data.items。 而且您不需要for cycle 进行记录。 试试这个

      var b = Ext.create("Ext.data.store"{
          model:'service'
      });
      Ext.getStore("a").data.items.each(function(record,id){
          //You can add multiple records by calling .add method once
          b.add(record.data.subServiceItems);
      });
      

      如果这没有帮助,请写。

      【讨论】:

        猜你喜欢
        • 2014-02-03
        • 1970-01-01
        • 2013-12-22
        • 2013-09-23
        • 1970-01-01
        • 2018-09-15
        • 1970-01-01
        • 1970-01-01
        • 2019-11-20
        相关资源
        最近更新 更多