Javascript AngularJS:在$scope中搜索匹配的值
我有一个页面,我想在其中打印一些标签的值,这些标签已经存在于JSON对象中:Javascript AngularJS:在$scope中搜索匹配的值,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我有一个页面,我想在其中打印一些标签的值,这些标签已经存在于JSON对象中: $scope.countries = [ { "key": "NL", "value": "Netherlands" }, { "key": "BE", "value": "Belgium" }, { "key": "TR
$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(数组,函数(值,键){})不是:函数(键,值)