如何为数组中的每条记录设置一个 属性 的值
how to set a value for one property for every record in an array
我有一个包含 1 条或多条记录的数组。对于 ex: 的每条记录都有一个 属性 id。我想将此名称设置为默认值:8。请帮助我。
数组:[{id: 2, 名称: "x"},{id: 4, 名称: "y"}]
我试过这种方式
if (!Ext.isEmpty(detailLineItems) && (detailLineItems.length > 0)) {
canProcess = false;
Ext.Array.forEach(array, function (r) {
if (r.id == 0 || Ext.isEmpty(r.id)) {
canProcess = true;
//how do I set this id
r.id == 6;
}
});
您不应该更改记录的内部 ID,因为这可能会破坏一切;框架期望 record.id
中的值与 record.get(record.idProperty)
中的值相同。相反,您应该始终使用 setter 方法:record.set("id", 8)
.
但您实际上要搜索的是模型字段中的 defaultValue
configuration:
fields:[{
name: 'id',
type: 'int',
defaultValue: 8
}]
请注意,字段 id
在 ExtJS 中得到特殊处理,只要模型的 idProperty
默认为 id
。一个商店只能包含一条在 idProperty
定义的字段中具有相同非空值的记录,因此如果将它们全部添加到同一个商店,您最终只会得到一条记录,而所有其他记录都是删除。因此,如果您需要商店中具有相同 id
的多条记录,则必须将模型上的 idProperty
更改为其他内容,例如
idProperty: 'someNonExistentProperty'
这可能会导致存储 sync
操作出现问题。如果您只是尝试将 id
设置为固定值,因为您的后端需要整数 id
,并且 ExtJS 为新记录生成的默认 ID 是非数字的(例如 ext-myModel-1
),你可以查看 identifier: 'negative'
.
Alexander 已经回答了您的问题,但只是提一下,您的代码语句 r.id == 6; 使用的是相等运算符而不是赋值运算符 r.id = 6; :-)
我有一个包含 1 条或多条记录的数组。对于 ex: 的每条记录都有一个 属性 id。我想将此名称设置为默认值:8。请帮助我。 数组:[{id: 2, 名称: "x"},{id: 4, 名称: "y"}] 我试过这种方式
if (!Ext.isEmpty(detailLineItems) && (detailLineItems.length > 0)) {
canProcess = false;
Ext.Array.forEach(array, function (r) {
if (r.id == 0 || Ext.isEmpty(r.id)) {
canProcess = true;
//how do I set this id
r.id == 6;
}
});
您不应该更改记录的内部 ID,因为这可能会破坏一切;框架期望 record.id
中的值与 record.get(record.idProperty)
中的值相同。相反,您应该始终使用 setter 方法:record.set("id", 8)
.
但您实际上要搜索的是模型字段中的 defaultValue
configuration:
fields:[{
name: 'id',
type: 'int',
defaultValue: 8
}]
请注意,字段 id
在 ExtJS 中得到特殊处理,只要模型的 idProperty
默认为 id
。一个商店只能包含一条在 idProperty
定义的字段中具有相同非空值的记录,因此如果将它们全部添加到同一个商店,您最终只会得到一条记录,而所有其他记录都是删除。因此,如果您需要商店中具有相同 id
的多条记录,则必须将模型上的 idProperty
更改为其他内容,例如
idProperty: 'someNonExistentProperty'
这可能会导致存储 sync
操作出现问题。如果您只是尝试将 id
设置为固定值,因为您的后端需要整数 id
,并且 ExtJS 为新记录生成的默认 ID 是非数字的(例如 ext-myModel-1
),你可以查看 identifier: 'negative'
.
Alexander 已经回答了您的问题,但只是提一下,您的代码语句 r.id == 6; 使用的是相等运算符而不是赋值运算符 r.id = 6; :-)