Angular:如何根据项目的属性显示icon.png
Angular: How to show icon.png depending on the attribute of a item?
我有一个对象数组,如下所示:
[{"name":"Steve", "hourly_wage":16, "status":"part-time"},
{"name":"Maria", "hourly_wage":25, "status":"full-time"},
{"name":"Jose", "hourly_wage":21, "status":"former"}]
我想为每个人的就业状态显示一个图标。一个完整的圆圈代表全职,一个半圆圈代表兼职,一个空圆圈代表前者。我如何在Javascript/Angular中完成这项工作?我在想一个隐藏的if语句?
在我看来,最通用的方法是创建一个映射,然后使用它。
JS:
$scope.statusIconMapping = {"part-time": "half_circle.jpg",
"full-time": "full_circle.jpg",
"former": "empty_circle.jpg"
};
标记:
<div ng-repeat="employee in employees">
...
<img src="{{statusIconMapping[employee.status]}}" />
</div>
这取决于导入这些图标的方式。它们是图像吗?字体?假设您使用图像,并且它们被命名为part-time.jpg、full-time.jpg和former.jpg,并且都被放置在some/resources文件夹中,则以下内容应该有效
<div ng-repeat="obj in list">
<img ng-src="/resources/{{obj.status}}.jpg"/>
{{obj.name}}
</div>
这相应地适用于字体等以及
您应该使用status属性作为条件,并在html中执行类似的操作:
<div ng-src="/images/icons/{{ status }}.png"></div>
其将输出到CCD_ 1或其匹配的任何东西。
请确保使用ng-src
,而不是src
,因为您会遇到这样的问题:页面在AngularJS渲染之前加载,浏览器会查找名称为{{ foo }}
的文件,但该文件当然不存在。
此外,不要像其他人所展示的那样使用无关的逻辑(恕我直言)。只需在JSON中添加另一个属性,并根据其状态显示一个图标。例如,如果状态是全职的,JSON中的图标可以是"full-circle.png",或者您可以将状态用作图标的名称,以使事情变得更简单。
例如:
{
status: 'full-time', icon: 'full-circle.png'
}
甚至:
{
status: 'full-time'
}
然后将您的图标命名为full-time.png
,这样您就可以在HTML中轻松使用它,而无需额外的逻辑或属性。
相关文章:
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 重写CSS:使用jquery显示none属性
- 对象的属性显示为未定义
- 离子模态未打开(类型错误:无法读取未定义的属性“显示”)
- HTML “标题”属性显示单词“未定义” - 例如.“主页未定义”
- 使剑道 UI 下拉列表将“选择控件”的“标题”属性显示为剑道工具提示
- 内容显示中的 JavaScript 错误“无法设置未定义的属性”显示”
- 动态添加的控件属性显示为 controls=“ ” 而不是控件
- 为什么获胜't我的json对象的`email`属性显示在我的jade模板中
- Angular:如何根据项目的属性显示icon.png
- 如何使用属性显示带有CSS3转换的隐藏元素
- 文本和输入元素以相同的方式追加和给定属性.显示文本,但不显示输入.为什么
- 基于属性显示html
- 修改title属性显示的工具提示
- 使用标签选择图像文件,但有属性显示输入
- 使用使用rel属性显示的模式编辑gridview单元格
- 按数据属性显示列表中的前三项
- 使用数据弹出属性显示 Jquery-ui 对话框
- 使用数据弹出属性显示 UI 对话框
- 检测属性显示从无显示到显示块