在我的脚本中,我使async得到我的对象的数据。
这是脚本:
self.organizations = [];
Service.get(self.orgId).then(function (org) {
self.organizations.push({
Organization: org,
Role: "User"
});
Service.getGroups().then(function (result) {
_.forEach(result.Objects, function (res) {
if (res.org.Id === self.orgId) {
self.organizations.Groups = res.Groups;
}
});
});
});
首先,我获得该组织的数据。然后在这个承诺内部检索所有组,如果一个组作为相同的组织ID,则表示组和组织被绑定。
res.Groups模型示例:
res.Groups = [
{Id: 1, Name: "Group Name 1"},
{Id: 2, Name: "Group Name 2"}
];
由于未显示其他功能,我无法使用任何其他功能"架构"。
然后我想在当前组织的索引及其组中添加self.organizations数组。但结果是我得到了:
self.organizations = [
{Organization: "First Organization", Role: "User"},
{Organization: "Second Organization", Role: "User"},
Groups: [
{Id: 1, Name: "Group Name 1"},
{Id: 2, Name: "Group Name 2"}
{Id: 3, Name: "Group Name 3"}
]
];
我期待的是:
self.organizations = [
{
Organization: "First Organization",
Role: "User",
Groups: [
{Id: 1, Name: "Group Name 1"},
{Id: 1, Name: "Group Name 2"}
]
},
{
Organization: "Second Organization",
Role: "User",
Groups: [
{Id: 3, Name: "Group Name 3"}
]
}
];
我不知道如何在当前组织内推送res.Groups(当前的第一个承诺迭代)。我知道我的结构可能不合适,但我很难找到合适的工作。
答案 0 :(得分:1)
您可以先将Groups
添加到当前对象,然后将其推送到集合中:
self.organizations = [];
Service.get(self.orgId).then(function (org) {
var item = {
Organization: org,
Role: "User"
}
Service.getGroups().then(function (result) {
_.forEach(result.Objects, function (res) {
if (res.org.Id === self.orgId) {
item.Groups = res.Groups;
}
});
self.organizations.push(item);
});
});