使用角度过滤器

时间:2016-11-28 14:20:46

标签: angularjs angular-filters

我在我的应用程序中使用angular 1.5,我在其中使用来自休息服务调用的JSON响应来在UI上显示数据。我现在需要根据来自其余服务调用的特定'statu'来更改UI上显示的文本。有人可以帮助我如何使用角度滤波器来实现这一目标吗?

JSON响应:

var response = {
  "recordCnt": 1,
  "details": [{
    "type": "user",
    "**status**": 0
  }]
};

**status**可以是'1'也可以是'2'。我需要在UI上根据这些值显示不同的值。

例如:如果状态为'0',我将必须显示'无效','有效',如果状态为'1','过期',如果状态为'2'

3 个答案:

答案 0 :(得分:1)

在这种情况下,我认为您只需要 ng-if 条件:

<div ng-if="response.details[0].status = 0">inactive</div>
<div ng-if="response.details[0].status = 1">active</div>
<div ng-if="response.details[0].status = 2">expired</div>

<强> Try it on JSFiddle 即可。您可以使用status值来查看更改。

答案 1 :(得分:1)

您可以使用 ng-if

 <div ng-controller="listController">
    <div ng-if="data.details[0].status == 0">inactive</div>
    <div ng-if="data.details[0].status == 1">active</div>
    <div ng-if="data.details[0].status == 2">expired</div>
  </div>

<强> DEMO

答案 2 :(得分:0)

我能够使用自定义角度过滤器,它有效。感谢@sajeetharan和@mistalis的输入。

单元格级别配置:

cellTemplate:'{{row.entity [col.field] | getUserStatus }}'//'getUserStatus'是使用的过滤器。

过滤:

    (function() {
    'use strict';
    var statusMap = {'inactive', 'active', 'expired'};
    var filter = function(statusMap) {
        return function(status) {
            return statusMap[status];   // 'status' could be '0', '1' and '2'
        };
    };

    angular.module('app.userSearch).filter('getUserStatus', filter);
})();