发表于: 2016-08-11 22:51:55

0 2271


今天完成的事:自定义一个过滤器

明天要做的事:学习angular的表单验证

收货:

因为后台给的数据是0-9的数字数组

而相对应的是

"0基础","3个月内","6个月内","一年内","三年内","三年以上"

的文字,我们就需要去进行相对应的过滤



一开始的做法是在js中写出文字数组,然后在ng-repeat中去过滤


后来师兄说我这个还不够简洁,需要在路由中先定义一个公共的常量,以及过滤器。然后在要使用的页面中进行注入


//常量
.constant('type', [
{id: 1, name: 'CSS'},
   {id: 2, name: 'JS'},
   {id: 3, name: 'Java'},
   {id: 4, name: '运维'},
   {id: 5, name: 'DBA'},
   {id: 6, name: '产品'},
   {id: 7, name: 'IOS'},
   {id: 8, name: 'Android'}
])
.constant('talent', [
{id: 1, name: '学霸'},
   {id: 2, name: '学渣'}
])
.constant('level', [
{id: 1, name: '0基础'},
   {id: 2, name: '3个月内'},
   {id: 3, name: '6个月内'},
   {id: 4, name: '1年内'},
   {id: 5, name: '3年内'},
   {id: 6, name: '3年以上'}
])

//过滤器
.filter('typefilter', function (type) {
return function (params) {
return (params>=type.length?"未知类型":type[params].name)
}
})
.filter('talentfilter', function (talent) {
return function (params) {
return (params>=talent.length?"未知资质":talent[params].name)
}
})
.filter('levelfilter', function (level) {
return function (params) {
return (params>=level.length?"未知等级":level[params].name)
}
});


具体页面中进行数据过滤,将数字过滤成需要展示的文字

<th>{{a.type | typefilter }}</th>



返回列表 返回列表
评论

    分享到