根据服务器返回的状态改变前端显示的内容(Angular 过滤器)
2017-06-24 10:10
519 查看
最近在做一个以Angular为框架的单页面网页应用。遇到这样一个小问题,就是前端的显示内容得根据后端返回的内容决定。举个栗子,前端要显示一个关于课程的列表,每个课程都有一个状态值,可以显示为“已上线”、“未上线”、“已结课”、“预开课”。如果直接接收服务器传回来的值,是直接显示“0”、“1”、“2”、“3”四种状态值。返回的是数值而不是中文。要解决这个问题,可以通过自定义一个过滤器,根据返回值,改变显示值。
HTML代码:
没有进行任何处理,直接显示为:
这是数据库里面存储的课程状态的值,直接显示出来,不方便用户查阅,所以必须转化为中文说明文字。
本人刚刚自学入门Angular,觉得用过滤器可以很好解决这个问题(可能有更好的办法)。解决方法如下:
JS代码:
HTML代码
输出结果为:
本文纯属作为个人笔记。
HTML代码:
<tr ng-repeat="item in courseList"> <td>{{item.courseID}}</td> <td>{{item.courseName}}</td> <td>{{item.courseTime}}</td> <td>{{item.courseTeacher}}</td> <td>{{item.courseStatus}}</td> <!---此处就是课程状态值---> </tr>
没有进行任何处理,直接显示为:
这是数据库里面存储的课程状态的值,直接显示出来,不方便用户查阅,所以必须转化为中文说明文字。
本人刚刚自学入门Angular,觉得用过滤器可以很好解决这个问题(可能有更好的办法)。解决方法如下:
JS代码:
app.filter("statusChangeName",function(){ return function(input){ var statusName = ""; if(input=="0"){ statusName = "已上线"; } if(input=="1"){ statusName = "未上线"; } if(input=="2"){ statusName = "已结课"; } if(input=="3"){ statusName = "预开课"; } return statusName; } })
HTML代码
<tr ng-repeat="item in courseList"> <td>{{item.courseID}}</td> <td>{{item.courseName}}</td> <td>{{item.courseTime}}</td> <td>{{item.courseTeacher}}</td> <td>{{item.courseStatus | statusChangeName }}</td> <!---此处就是课程状态值,增加一个过滤器---> </tr>
输出结果为:
本文纯属作为个人笔记。
相关文章推荐
- 根据内容改变actionbar的menu菜单MenuItem的显示
- EasyUi 新组件 switchbutton 根据状态切换显示内容
- error_page 改变状态码为新的状态码,并显示指定内容
- android 根据EditText 内容,改变TextView显示
- 根据服务器的返回值动态设置HTML中select中option的显示
- Fragment根据网络返回状态显示不用界面
- jquery ajax方法重写,利用statusCode对象根据服务器返回的不同状态进行处理
- 从服务器返回的字符串,先转成byte[],然后保存到文件,listview根据uri获取显示
- EasyUi 新组件 switchbutton 根据状态切换显示内容
- 定义xml为drawable文件并根据状态改变显示的图片资源
- list contro控件根据单元格的内容改变显示的颜色
- 监听EditText输入状态,根据是否有输入内容显示ImageButton(清空按钮)
- jqGrid jqgrid formatter用法 根据 列 内容,改变当前列的 显示内容
- angular2 返回一个数组里面的内容禁用 新增一天是可编辑的状态
- GridView使用技巧之:根据绑定的内容改变单元格(或者行)的显示样式
- Android 根据Edittext内容动态改变Listview显示的数据
- 极光推送 根据服务器返回内容跳转指定页面
- Android-根据软键盘的显示与隐藏改变输入框的内容
- wpf datagrid 单元格颜色 根据条件改变颜色 根据表datatable动态显示datagrid内容
- 根据状态值改变PopupMenu显示的菜单项