我有一个页面,我想打印一些标签的值,我已经在JSON对象中了:
$scope.countries = [
{
"key": "NL",
"value": "Netherlands"
},
{
"key": "BE",
"value": "Belgium"
},
{
"key": "TR",
"value": "Turkey"
},
{
"key": "PL",
"value": "Poland"
}
]
所以我在范围内有国家/地区代码,并希望使用过滤器将代码替换为实际的国家/地区名称。因此,我实现了这样的过滤器:
{{formulier.country | fetchname }}
我尝试构建的过滤器应搜索上述国家/地区范围内的国家/地区代码(密钥),并返回这些(值)的国家/地区名称。我开始使用这个过滤器,但不幸的是我不能让它工作。
app.filter('fetchname', function() {
return function(input, all) {
angular.forEach($scope.countries, function(key, value) {
if (key === input) {
return value;
}
});
}
});
我必须对我的过滤器进行哪些更改才能在AngularJS中使用它?我如何获得NL'被'荷兰'取代?
答案 0 :(得分:5)
您的过滤器代码中的$scope
与您的JSON对象中的$scope
不一致(我假设您没有发布所有代码)。您应该更新过滤器以获取参数,特别是用于匹配传递给过滤器的值的国家/地区列表。
app.filter('fetchname', function() {
return function(input, countries) {
angular.forEach(countries, function(value, key) {
if (key === input) {
return value;
}
});
});
您可以在HTML中使用它(假设为当前范围填充了countries
):
{{ formulier.country | fetchname:countries }}