【发布时间】:2017-03-08 14:10:51
【问题描述】:
在我的脚本中,我使用异步 get 来获取我的对象的数据。
这是脚本:
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(当前的第一个承诺迭代)。我知道我的结构可能不合适,但我很难找到一个合适的工作。
【问题讨论】:
标签: javascript arrays loops object