2016-11-28 293 views
0

我在我的應用程序中使用角度1.5,我在其中使用來自其他服務調用的JSON響應以在UI上顯示數據。我現在有要求根據來自其他服務調用的特定'statu'來更改UI上顯示的文本。有人可以幫助我如何使用角度過濾器來實現這一目標嗎?使用角度過濾器

JSON響應:

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

**status**可以是 '1' 以及 '2'。我需要根據UI上的這些值顯示不同的說明。

例如:如果狀態爲「0」,我必須證明「無效」,「主動」如果狀態爲「1」和在狀態的情況下「過期」「2」

+0

你能接受一個答案,如果您的問題解決了嗎? :) – Mistalis

回答

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值查看更改。

+0

實際上,我正在使用此狀態顯示在角度UI網格的單元格中。所以我必須使用相同的過濾器,因爲所有的列都是可配置的。是否有可能使用過濾器做同樣的事情? – VishnuNair

+0

您可以在任何HTML標籤(不僅是'div')上使用'ng-if'。如果你使用網格,你可以根據自己的需要調整它(可能是'td'而不是'div'?) – Mistalis

+0

如果你提供了我的網格代碼樣本,我想我可以爲你調整它。 – Mistalis

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

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); 
})();