AngularJS计算JSON数据集中特定节点的数量

时间:2014-07-15 11:09:48

标签: angularjs angularjs-scope angularjs-ng-repeat angular-filters

我有一组JSON数据:

"MyMessages": [
        {
            "Code" :  "N101",
            "ID" : "History",
            "Indicator" : "Down",
            "PosChangeMessage" : "test test test test",
            "NegReasonMessage" : "test test test test",
            "Image" : "ImageType.Warning"
        },

        {
            "Code" :  "A874",
            "ID" : "History",
            "Indicator" : "Up",
            "NegReasonMessage" : "test test test test",
            "Image" : "ImageType.Ok"
        },

        {
            "Code" :  "X85",
            "ID" : "Age",
            "Indicator" : "Down",
            "PosChangeMessage" : "test test test test",
            "Image" : "ImageType.Warning"
        },

        {
            "Code" :  "Z846",
            "ID" : "Products",
            "Indicator" : "Up",
            "PosChangeMessage" : "test test test test",
            "Image" : "ImageType.Ok"
        },
    ],

我可以通过{{ MyMessages.length }}

显示MyMessages中的项目数量

然而,我想知道的是PosChangeMessage以及有多少NegChangeMessage个项目。

所以,在上面的例子中:

PosChangeMes​​sage = 3

NegChangeMes​​sage = 2

2 个答案:

答案 0 :(得分:2)

请参见此处:http://jsbin.com/yaxiya/1/

 angular.forEach(MyMessages, function(message){

       if(message.PosChangeMessage){
       $scope.PosChangeMessage++;
       }
       if(message.NegReasonMessage)
       {
       $scope.NegChangeMessage++;
       }


       });

答案 1 :(得分:1)

在控制器中创建一个方法,该方法遍历" MyMessages"并在控制器中计算相应的值..

for(var i=0;i<MyMessages.length;i++){
  if(MyMessages[i].PosChangeMessage!=null){
    $scope.posChangeMessageLength++;  
  }
  if(MyMessages[i].NegReasonMessage!=null){
    $scope.negReasonMessageLength++;  
  }

}