角度JS.在UI中显示国家/地区标志,而我只有国家/地区的ID
Angular JS. Show country flags in UI while I have only ID of country
在我的JSON结构中有countryIds
字段:
[
{countryIds: [1, 35, 16]}
{countryIds: [6, 21]}
]
在UI中,我想显示国旗而不是国家ID。
因此,为此目的,我认为我可以创建将返回图标标志网址的服务:
getCountryFlagIconUrlById(countryId) {
switch(countryId) {
case 1: return "http://mySite:8080/resources/usa.png"
.....
case 200: return "http://mySite:8080/resources/russia.png"
}
但问题是我需要为 200 多个国家/地区创建switch-case
运算符。
还有比这更优雅的方法吗?
只需使用地图
var countries = {
1: 'usa',
...,
200: 'russia'
};
getCountryFlagIconUrlById如下:
function getCountryFlagIconUrlById(id) {
return 'http://localhost:8080/resources/'+countries[id]+'.png';
}
目前的缺点是它不检查 id 是否存在,但这是一个简单的 if 语句。
对于更有棱角的方法,将您的国家/地区作为 JSON 地图存储在.factory
中,并带有 ID 和 png 的名称值对。
然后创建一个自定义.filter
,该根据用作输入的 id 映射值。 过滤器文档
工作小提琴
app.factory('FlagFactory', function() {
return {
1: "usa",
2: "russia",
...
...
};
});
app.filter('flag', ['FlagFactory', function(FlagFactory) {
return function(input) {
return "http://mySite:8080/resources/" + FlagFactory[input] + ".png";
};
});
这样,这将易于实现并可在整个应用程序中重复使用。
<html> Hello World {{someCountryID | flag}} </html>
附加说明:
如果您打算使用计划使用角度模型来更新图像标签的 src,您应该使用ng-src
否则网站将尝试在角度替换它之前使用文字哈希 {{someimage}} 获取图像。
<img ng-src="{{foo | flag}}" alt="flag" />
如果你是 countryId 是唯一的 [它们应该是, 您可以相应地重命名图像并将代码重新设计为
getCountryFlagIconUrlById(countryId) {
return "http://mySite:8080/resources/" + countryId + ".png"
}
另一种方法是,如果您的 json 结构允许,用户国家 ID 以获取国家/地区名称并相应地获取图像。
也就是说,如果你有
{1 : "国家1", 2: "国家2"}
您可以像这样修改方法
getCountryFlagIconUrlById(countryId) {
return "http://mySite:8080/resources/" + countryJSON[countryId] + ".png"
}
相关文章:
- Possibile使用Manifest v2下的HTML5地理位置API将lat/long转换为国家/地区
- 无法使用国家/地区选择中的状态动态填充下拉列表
- 使用自动完成服务()将 Google 地图地点限制为特定国家/地区
- Magento:根据所选国家/地区隐藏/显示输入字段
- 仅在引导程序表单助手国家/地区选取器中显示国家/地区子集文本
- 如何从特定国家/地区重定向用户
- 根据国家/地区更改货币
- 如何将 gmap 搜索自动完成功能限制为有限的国家/地区
- 带有标志和文本的国家/地区建议列表
- 选择国家/地区时更改颜色
- 相对于选定的地区中心缩放SVG国家/地区地图
- Three.js地球仪-使国家/地区可点击
- javascript从所选国家/地区值中选择城市
- 如何获得用户'的国家/地区,并转发到URL
- 下拉菜单,用于选择国家/地区,然后选择州
- 如果在JavaScript w/HTML中选择了特定国家/地区,如何要求邮政编码为数字
- 我如何限制谷歌地图API's的搜索框将搜索到一个国家/地区
- 如何制作验证电话号码中国家/地区代码的正则表达式
- 如何防止谷歌地理编码器从其他国家/地区返回结果
- 如何读取钛合金中的当地国家/地区电话代码xml