Javascript AngularJS:在$scope中搜索匹配的值

Javascript AngularJS:在$scope中搜索匹配的值,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我有一个页面,我想在其中打印一些标签的值,这些标签已经存在于JSON对象中: $scope.countries = [ { "key": "NL", "value": "Netherlands" }, { "key": "BE", "value": "Belgium" }, { "key": "TR

我有一个页面,我想在其中打印一些标签的值,这些标签已经存在于JSON对象中:

$scope.countries = [
        {
            "key": "NL",
            "value": "Netherlands"
        },
        {
            "key": "BE",
            "value": "Belgium"
        },
        {
            "key": "TR",
            "value": "Turkey"
        },
        {
            "key": "PL",
            "value": "Poland"
        }
    ]
因此,我在一个范围内有国家代码,并希望使用过滤器将代码替换为实际的国家名称。因此,我实现了如下过滤器:

 {{formulier.country | fetchname }} 
我试图构建的过滤器应该在上面的countries范围中搜索国家代码(键),并返回这些国家的名称(值)。我开始使用这个过滤器,但不幸的是我没有让它工作

app.filter('fetchname', function() {
    return function(input, all) {
        angular.forEach($scope.countries, function(key, value) {
            if (key === input) {
                return value;
            }
        });
    }
  });

我需要对我的过滤器做什么修改,才能让它在AngularJS中工作?如何将“NL”替换为“荷兰”?

过滤器代码中的
$scope
将与JSON对象中的
$scope
不同(我假设您没有发布所有代码)。您应该更新筛选器以获取参数,特别是用于与传递给筛选器的值进行匹配的国家/地区列表

app.filter('fetchname', function() {
  return function(input, countries) {
    angular.forEach(countries, function(value, key) {
      if (key === input) {
        return value;
      }
    });
  });
您可以像这样在HTML中使用它(假定为当前范围填充了
countries
):


过滤代码中的
$scope
将与JSON对象中的
$scope
不同(我假设,您没有发布所有代码)。您应该更新筛选器以获取参数,特别是用于与传递给筛选器的值进行匹配的国家/地区列表

app.filter('fetchname', function() {
  return function(input, countries) {
    angular.forEach(countries, function(value, key) {
      if (key === input) {
        return value;
      }
    });
  });
您可以像这样在HTML中使用它(假定为当前范围填充了
countries
):


@上述代码也将使您的代码可重用。您可以将变量命名为值,并在整个站点中使用,而不是筛选器中的国家。@ruud kok上述代码也将使您的代码可重用。您可以将变量命名为值,而不是筛选器中的国家/地区,并在整个站点中使用它。注意-根据文档:它是角度的。forEach(数组,函数(值,键){})不是:函数(键,值)注意-根据文档:它是角度的。forEach(数组,函数(值,键){})不是:函数(键,值)