AngularJS从对象中获取另一个值的方法

AngularJS way to grab a value by another value from the object

本文关键字:方法 另一个 获取 对象 AngularJS      更新时间:2023-09-26

AngularJS从对象中按键获取值的方法是什么?

var myobj=   {
        "set1": {
            "key": "B11",
            "color": "yellow"
        },
        "setA": {
            "key": "F34",
            "color": "green"
        }
    }

假设我想通过"F34"myobj获取"green"?(myobj可以是任意数量的对象)。

它可以通过AngularJS的方式完成吗?或者我必须研究SO问题

如果你计划在多个控制器/服务中使用这个场景,我会创建一个自定义过滤器来为我做这项工作。

angular.module('myApp').filter('getColour', getColour);
function getColour() {
    return filter;
    function filter(object, key) {
        var colour;
        angular.forEach(object, function(set) {
            if (set.key === key)
                colour = set.color;
        });
        return colour;
    }
}

然后可以这样使用:

$scope.colour = $filter('getColour')(myobj, 'F34');

示例fiddle