AngularJS/JavaScript从另一个对象创建新对象
我有一个问题,我已经坚持了一段时间,正在寻求一些建议 在我的控制器上,我对后端有一个重新启动的调用,以检索一些数据,如下所示AngularJS/JavaScript从另一个对象创建新对象,javascript,arrays,json,angularjs,object,Javascript,Arrays,Json,Angularjs,Object,我有一个问题,我已经坚持了一段时间,正在寻求一些建议 在我的控制器上,我对后端有一个重新启动的调用,以检索一些数据,如下所示 { "banner_heading": { "data": "Services", "id": 1 }, "banner_text": { "data": "some banner text", "id": 2 }, "banner_img": {
{
"banner_heading": {
"data": "Services",
"id": 1
},
"banner_text": {
"data": "some banner text",
"id": 2
},
"banner_img": {
"data": "services.jpg",
"id": 3
}
}
Angularjs控制器(使用Restangular)
现在,当我注销$scope.content
时,我得到了一个数组,其中有三个对象看起来与此类似
Array[3]
0: Object
banner_heading: "Services",
id: 1
1: Object
banner_text: "some banner text",
id: 2
2: Object
banner_img: "services.jpg",
id: 3
这些对象还有很多,但为了这个问题,我已经对其进行了简化,这些是我想从对象中获得的唯一属性
banner_标题、banner_文本和banner_img都是使用lodash forEach循环在上面的控制器中动态创建的属性
现在我来谈谈我正在努力完成的事情。我需要从这个对象数组中创建一个如下所示的对象
{
"banner_heading": {
"data": "Services",
"id": 1
},
"banner_text": {
"data": "some banner text",
"id": 2
},
"banner_img": {
"data": "services.jpg",
"id": 3
}
}
基本上,在我看来,我需要能够输出像{{banner_heading}}
这样的数据,但是我还需要能够维护id,以便在服务器端更新数据
我不知道如何才能做到这一点,我已经困惑了几个小时,并将非常感谢任何帮助 我将提出一种解决方案,它不需要对原始阵列数据进行分组或处理: 假设我们有这个问题:
$scope.content = [{ banner_heading: "Services", id: 1}, {banner_text:'some text', id:2}, {banner_img:'service.jpg', id:3}];
我们可以编写一个函数来提取所需内容:
$scope.getData = function(n) {
// question states lodash is being used
var row = _.find($scope.content, function(item) {
return n in item;
});
return row[n];
}
$scope.getId = function(n) {
var row = _.find($scope.content, function(item) {
return n in item;
});
return row.id;
}
在这方面:
{{ getData('banner_text') }}
这里是一个演示:你能给问题添加你想要的对象的实际JSON吗?@lucuma我不确定你的意思,我在我的上一个代码片段中给出了一个我试图实现的示例,它的格式是否正确?这不是一个代码片段,看起来像是调试工具的输出。这就是你想要的
{'banner_heading':'services',id:1},{'banner_text':'some banner text',id:2},{'banner_img':'services.jpg',id:3}
?你至少能使用标准的javascript符号来定义你想要的对象吗?不,你的例子看起来像是三个不同的对象,我需要将它们都放在一个对象中,这样我就不必使用ng repeat
Hmm我不知道为什么会返回未定义。请确保传递给getData的字符串是键的extact名称。是的,我…嗯,感到困惑。我希望这能起作用,这是一个伟大而简单的解决方案。我们有些人,它起作用了。但我唯一剩下的问题是,我没有办法获取单个id。我需要能够获取id,以便能够处理PUT请求以编辑每个数据段(标题、文本、图片)