【发布时间】:2026-01-16 19:30:02
【问题描述】:
我有一个问题困扰了一段时间,正在寻求一些建议。
在我的控制器上,我对后端进行了 Restangular 调用以检索一些数据,如下所示
Angularjs 控制器(使用 Restangular)
Pages.controller('PageContentController', ['$scope', '$routeParams', '$location', 'Restangular', function($scope, $routeParams, $location, Restangular) {
$scope.id = $routeParams.id;
Restangular.one('pages', $scope.id).getList('content').then(function(response) {
$scope.content = response;
$scope.content = _.forEach($scope.content, function(content) {
content[content.name] = content.content;
});
console.log($scope.content);
});
}]);
现在,当我退出 $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_heading、banner_text 和 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。
我不确定如何做到这一点,我已经为此困惑了几个小时,非常感谢任何帮助。
【问题讨论】:
-
你能在问题中添加你想要的对象的实际 JSON 吗?
-
@lucuma 我不确定你的意思,我在上一个代码 sn-p 中举了一个例子来说明我想要完成的事情,它的格式不正确吗?
-
那不是代码 sn-p 它看起来像是调试工具的一些输出。这是你想要的
{ {'banner_heading': 'services', id:1}, {'banner_text': 'some banner text', id:2}, {'banner_img':'services.jpg', id:3}}吗? -
你至少可以使用标准的javascript符号来定义你想要的对象吗?
-
不,您的示例看起来像是三个不同的对象,我需要将它们全部放在一个对象中,这样我就不必使用
ng-repeat
标签: javascript arrays json angularjs object