AngularJS:对象、数组、JSON、API问题

AngularJS: objects, arrays, JSON, API issues

本文关键字:API 问题 JSON 数组 对象 AngularJS      更新时间:2023-09-26

创建:

我正在使用$scope.services来存储我的服务列表。这是一组对象:

$scope.services = [{
    title           : undefined,
    quantity        : undefined,
    pricePerUnit    : undefined,
    priceCalculated : undefined,
    order           : undefined         
}];

然后我可以将另一个对象推入数组。

$scope.services.push({ 
    title           : undefined,
    quantity        : undefined,
    pricePerUnit    : undefined,
    priceCalculated : undefined,
    order           : undefined
});

到目前为止,一切都很好。然后,我将这个对象用作Angular中的模型,以显示其内容。

更新:

我正在调用API并获取格式为的JSON

{
    someData: "some data",
    services: {
        0: {
            id: 101,
            offer_id: 101,
            title: "some title",
            ...
        },
        1: {
            ...
        }
    }
}

通过$scope.services = data.services追加接收到的数据,然后当我调用$scope.services.push时,我得到控制台错误

TypeError: $scope.services.push is not a function.

可能出了什么问题?是JSON/数组问题吗?我从来没有弄清真相,所以任何理论知识都会受到赞赏。提前谢谢。

因为服务不是数组,(push是为数组定义的:array.prototype.push(((您需要从响应中构造一个合适的数组。

var servicesArray = [];
Object.keys(data.services).forEach(function (key) {
   servicesArray.push(data.services[key]);
}); 
$scope.services = servicesArray;

我认为您分配的对象(data.services($scope.services = data.services可能不是数组。交叉检查data.services中的对象是否为数组。发现了一个类似的问题(链接(,可能对您有所帮助。