Angular JS - angular.forEach - 如何获取对象的键?

时间:2013-08-23 06:31:27

标签: angularjs

我有JSON对象,如下所示

{
    "txt_inc_Application": {
        "EWS": true,
        "EWindow": true
    },
    "txt_inc_IncidentType": {
        "Brand Damage": true,
        "Internal failure": true
    }
}

我正在使用angular.forEach来获取值

$scope.filterFormula=function() {
    angular.forEach($scope.filters, function(filterObj , filterIndex) {
        angular.forEach(filterObj, function(value , key) {
            console.log(value+"--"+key)
        })
    })
}

如何在循环中获得“txt_inc_Application”和“txt_inc_IncidentType”?

同样在html中调用角度函数时,为什么它会被执行两次?

{{filterFormula()}}

enter image description here

2 个答案:

答案 0 :(得分:47)

forEach中迭代器的第一个参数是值,第二个是对象的键。

angular.forEach(objectToIterate, function(value, key) {
    /* do something for all key: value pairs */
});

在您的示例中,外部forEach实际上是:

angular.forEach($scope.filters, function(filterObj , filterKey)

答案 1 :(得分:2)

var obj = {name: 'Krishna', gender: 'male'};
angular.forEach(obj, function(value, key) {
    console.log(key + ': ' + value);
});

产生obj的属性及其各自的值:

name: Krishna
gender: male