【发布时间】:2016-05-13 09:56:48
【问题描述】:
我有一个从我的REST API 获取的对象...
我想遍历数组并从中创建对象/数组
这是数组;
orderItem 包含menu_modifier_groups,其中包含menu_modifier_items
orderItem -> menu_modifier_groups -> menu_modifier_items
orderItem: {
id: 159
name: Empanadas (Choice of 2)
description: Choice of Diced Beef; Spinach, Stilton and Onion; or Smoked Ham and Mozzarella
price: 700
available: 1
created_at: 2016-01-31 16:50:31
updated_at: 2016-01-31 16:50:31
menu_category_id: 41
restaurant_id: 11
menu_modifier_groups:
[ {
id: 9
name: Choose 2 Empanadas
instruction: null
min_selection_points: 2
max_selection_points: 2
force_selection: 1
created_at: 2016-02-01 01:03:35
updated_at: 2016-02-01 01:12:23
menu_item_id: 159
restaurant_id: 11
menu_modifier_items:
[ {
id: 34
name: Diced Beef
price: 0
created_at: 2016-02-01 01:04:08
updated_at: 2016-02-01 01:04:08
menu_modifier_group_id: 9
restaurant_id: 11
menu_item_id: 159
selected: true
} , {
id: 35
name: Smoked Salmon & Mozzarella
price: 0
created_at: 2016-02-01 01:04:37
updated_at: 2016-02-01 01:04:37
menu_modifier_group_id: 9
restaurant_id: 11
menu_item_id: 159
selected: true
} , {
id: 36
name: Stilton, Spinach and Onion
price: 0
created_at: 2016-02-01 01:05:05
updated_at: 2016-02-01 01:05:05
menu_modifier_group_id: 9
restaurant_id: 11
menu_item_id: 159
selected: false
} ]
} ]
}
根据我从REST API 收到的信息,我想做的是将这个orderItem 转换为;
// the main item + menu_modifier_items(where selected = true) without menu_modifier_groups
$scope.mainItem =
{
id: 159
name: Empanadas (Choice of 2)
description: Choice of Diced Beef; Spinach, Stilton and Onion; or Smoked Ham and Mozzarella
price: 700
available: 1
created_at: 2016-01-31 16:50:31
updated_at: 2016-01-31 16:50:31
menu_category_id: 41
restaurant_id: 11
menu_modifier_items:
[ {
id: 34
name: Diced Beef
price: 0
created_at: 2016-02-01 01:04:08
updated_at: 2016-02-01 01:04:08
menu_modifier_group_id: 9
restaurant_id: 11
menu_item_id: 159
selected: true
} , {
id: 35
name: Smoked Salmon & Mozzarella
price: 0
created_at: 2016-02-01 01:04:37
updated_at: 2016-02-01 01:04:37
menu_modifier_group_id: 9
restaurant_id: 11
menu_item_id: 159
selected: true
} ]
}
所以我可以将它与$http 一起使用,如下所示;
$scope.addItem = function(orderItem) {
//transform orderItem here into mainItem
$http({
method: 'post',
url: "http://api.example.com/web/cart/item/add",
data: $.param({
'cartItem': $scope.mainItem
}),
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function (data, status, headers, config) {
});
}
任何建议/指导表示赞赏。
【问题讨论】:
-
当用户在视图中进行选择时,为什么不能这样做?不完全清楚你的目标是什么
-
创建一个简单的演示
-
我已经更新了问题
-
还没有解决办法?如果我理解正确,您想更改数组的结构吗?
-
啊,我在看到您对问题的更新之前写下了我的答案。我会修改它。
标签: javascript arrays angularjs