如何将值推送到角度的嵌套对象?

时间:2016-01-08 15:36:47

标签: javascript angularjs loops foreach push

我有以下数据:

{
    "fruits": [
        {
            "name": "apple",
            "prices": [
                {
                    "2015": 2,
                    "2014": 3,
                    "2013": 1
                }
            ]
        },
        {
            "name": "banana",
            "prices": [
                {
                    "2015": 4,
                    "2014": 1,
                    "2013": 3
                }
            ]
        }
    ]
}

在我的.js文件中,在我的控制器中,我想计算最近一年和前一年的价格之间的差异。

如:

苹果= 3 - 2 = -1

所以在我的HTML中我可以这样做:

<div ng-repeat="fruit in fruits">
    {{fruit.name}}, {{fruit.change}}
</div>

我试过以下但没有运气:

angular.forEach($scope.fruits, function(fruit, key) {
    angular.forEach(fruit.prices, function(price, key) {
        this.change = price[0] - price[1];
    });
});

1 个答案:

答案 0 :(得分:1)

只是一个错字,而不是this使用fruit并且它会起作用。

function calculate(targetYear){
    angular.forEach($scope.fruits, function(fruit, key) {
        $scope.fruits[key].change = fruit.prices[0][targetYear] - fruit.prices[0][targetYear-1];
    });
}

您可以使用以下功能:calculate(2015)并为每个fruit.change值设置以显示2015/2014之间的变化