2017-02-27 49 views
0

基于this答案,我想将存储数据转换为对象并定义键值。这里是我相关的代码:将存储数据转换为包含已定义键名的对象ExtJS

var recordArray = {}; 
var paramArray = []; 

store.each(function(record){ 
    recordArray.comment = record.get("comment"); 
    recordArray.datecreated = record.get("datecreated"); 
    paramArray.push(recordArray); 
}); 

console.log(Ext.encode(paramArray)); 

但是从商店打印出来只有最后的数据,与和数据之和相匹配。假设我有一个像这样从列表视图数据:

[{comment: a, datecreated:1-2-1999}, {comment: b, datecreated:2-2-1999}] 

打印出来:

[{comment: b, datecreated:2-2-1999}, {comment: b, datecreated:2-2-1999}] 

我想要什么,当然,使用ParamArray包含的ListView的每个对象,不只是同一个。有任何想法吗?帮助赞赏。

回答

2

试试这个,

var paramArray = []; 
store.each(function(record){ 
    var recordArray = {}; 
    recordArray.comment = record.get("comment"); 
    recordArray.datecreated = record.get("datecreated"); 
    paramArray.push(recordArray); 
}); 

在代码中,你在原来的recordArray对象覆盖值,而不是创建一个新的对象,每次和因为对象是通过引用在JavaScript中,在原来的recordArray引用传递paramArray [0]也被修改。

相关问题