如何将其他字段从 oData 结果推送到 javascript 数组
How to push additional fields to a javascript array from an oData result
我在 javascript
中有一个随机数组
var dataModel = [];
我查询了一个 oData url,我想将结果填充到我的 dataModel [] 数组中。而且,我想为每个项目添加额外的字段
odataMod.read(
"/",
null, [],
true,
function (oData, oResponse) {
var data = oData.results;
data.forEach(function (item) {
//Add the object
dataModel.push(item);
//I want to add additional fields to every object in data
dataModel.push(item.ObjectType = "Chevron");
dataModel.push(item.HierarchyNodeLevel = 0);
dataModel.push(item.IsCriticalPath = false);
dataModel.push(item.IsProjectMilestone = false);
dataModel.push(item.DrillDownState = "expanded");
dataModel.push(item.Magnitude = 5);
...
注意: ObjectType 、 DrillDownState 、 Magnitude (等...)是我要添加的字段及其值 Chevron、0、false (等...)
下面是当前结果的截图:
但是我想在每个项目内部而不是外部添加额外的属性,我做错了什么?换句话说,我希望附加字段位于元数据中
下面是我要添加项目的 sc:
也许我误会了,但我认为您希望响应中的每个项目只推送一次。其他推送应该替换为项目副本的设置属性...
data.forEach(function (item) {
item.ObjectType = "Chevron";
item.HierarchyNodeLevel = 0;
item.IsCriticalPath = false;
item.IsProjectMilestone = false;
item.DrillDownState = "expanded";
item.Magnitude = 5;
dataModel.push(item); // note: just one push
// alternatively, so as to not mutate item...
// const dataModelItem = Object.assign({
// ObjectType: "Chevron",
// HierarchyNodeLevel: 0,
// etc.
// }, item);
// dataModel.push(dataModelItem);
}
我在 javascript
中有一个随机数组var dataModel = [];
我查询了一个 oData url,我想将结果填充到我的 dataModel [] 数组中。而且,我想为每个项目添加额外的字段
odataMod.read(
"/",
null, [],
true,
function (oData, oResponse) {
var data = oData.results;
data.forEach(function (item) {
//Add the object
dataModel.push(item);
//I want to add additional fields to every object in data
dataModel.push(item.ObjectType = "Chevron");
dataModel.push(item.HierarchyNodeLevel = 0);
dataModel.push(item.IsCriticalPath = false);
dataModel.push(item.IsProjectMilestone = false);
dataModel.push(item.DrillDownState = "expanded");
dataModel.push(item.Magnitude = 5);
...
注意: ObjectType 、 DrillDownState 、 Magnitude (等...)是我要添加的字段及其值 Chevron、0、false (等...)
下面是当前结果的截图:
但是我想在每个项目内部而不是外部添加额外的属性,我做错了什么?换句话说,我希望附加字段位于元数据中
下面是我要添加项目的 sc:
也许我误会了,但我认为您希望响应中的每个项目只推送一次。其他推送应该替换为项目副本的设置属性...
data.forEach(function (item) {
item.ObjectType = "Chevron";
item.HierarchyNodeLevel = 0;
item.IsCriticalPath = false;
item.IsProjectMilestone = false;
item.DrillDownState = "expanded";
item.Magnitude = 5;
dataModel.push(item); // note: just one push
// alternatively, so as to not mutate item...
// const dataModelItem = Object.assign({
// ObjectType: "Chevron",
// HierarchyNodeLevel: 0,
// etc.
// }, item);
// dataModel.push(dataModelItem);
}