2015-07-11 64 views
1

过滤器,我有以下Json_encode从PHP响应...AngularJS通过ID

[ 
{"ID":"149","IDusr":"4","aut_more_info":"good","doc_name":"img1838142879.jpeg","doc_type":"jpg"},{"ID":"149","IDusr":"4","aut_more_info":"good","img5733250433.jpeg","doc_type":"jpg"},{"ID":"149","IDusr":"4","aut_more_info":"good","doc_name":"img1230306801.jpg_doc","doc_type":"jpg"} 
] 

我已经尝试了https://github.com/a8m/angular-filter插件。这是我的代码。

<div ng-repeat="(key, value) in Detail | groupBy: 'ID'"> 
     <div ng-repeat="aut in value"> 

      <div class="item item-avatar bar bar-calm"> 
       <h2>{{aut.name}} {{aut.model}}</h2> 
      </div> 
      <div class="item item-avatar"> 
       <img src="../www/img/icon/{{aut.doc_name}}"> 
      </div> 
</div> 
</div> 

正如你从阵列看到,我有相同的ID,但DOC_NAME是不同的,意味着我要一次显示ID,但是这三个形象应显示为好。我怎样才能做到这一点?

在此先感谢...

+0

id在n值重复前使用'{{key}}'。 – Ankita

+1

你会创造一个蹲式或小提琴吗? – Vineet

+0

您的JSON存在问题。 ''aut_more_info“:”好“,”img5733250433.jpeg“,'图像前应该有'doc_name'。 –

回答

2

因此你缺少一个属性名称您的JSON错误。

Plunker

angular.module('foo', ['angular.filter']) 

.controller('bar', ['$scope', function($scope){ 


    $scope.Detail = [ 
    { 
     "ID"   : "149", 
     "IDusr"   : "4", 
     "aut_more_info" : "good", 
     "doc_name"  : "img1838142879.jpeg", 
     "doc_type"  : "jpg" 
    }, 
    { 
     "ID"   :"149", 
     "IDusr"   :"4", 
     "aut_more_info" :"good", 

     // you were missing the property name 'doc_name' here... 
     "doc_name"  :"img5733250433.jpeg", 
     "doc_type"  :"jpg" 

    }, 
    { 
     "ID"   :"149", 
     "IDusr"   :"4", 
     "aut_more_info" :"good", 
     "doc_name"  :"img1230306801.jpg_doc", 
     "doc_type"  :"jpg" 
    } 
    ]; 

}]); 

而且你似乎在试图渲染性能没有在你的JSON数据存在价值

<!DOCTYPE html> 
<html> 

    <head> 
    <link rel="stylesheet" href="style.css"> 

    </head> 

    <body ng-app="foo"> 



    <div ng-controller="bar"> 

     <div ng-repeat="(key, value) in Detail | groupBy: 'ID'"> 

     <div ng-repeat="aut in value"> 

      <div class="item item-avatar bar bar-calm"> 

       <!-- you don't have properties name or model in your json --> 
       <h2>{{aut.name}} {{aut.model}}</h2> 
      </div> 

      <div class="item item-avatar"> 
       <img src="../www/img/icon/{{aut.doc_name}}"> 
      </div> 
     </div> 
    </div> 

    </div> 




    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-filter/0.5.4/angular-filter.js"></script> 

    <script src="script.js"></script> 
    </body> 

</html> 
+0

谢谢你的确切答案 –

2

我觉得有一个在你的JSON一个概念上的错误(除了一个由@注意A.Alger)。 我喜欢唯一性的ID。例如,在一个简单的数据库表中,您的ID(主键)每个select显示一次。如果您进行一些连接操作,那么ID可以出现多次。这是很好的,因为数据库表(和select)缺乏表现力是JSON确实有,所以我会回到这样一个JSON:

[{ 
    "ID": "149", 
    "IDusr": "4", 
    "aut_more_info": "good", 
    "docs": [{ 
    "doc_name": "img1838142879.jpeg", 
    "doc_type": "jpg" 
    }, { 
    "doc_name": "img5733250433.jpeg", 
    "doc_type": "jpg" 
    }, { 
    "doc_name": "img1230306801.jpg", 
    "doc_type": "jpg" 
    }] 
}] 

这样的文件自然组合在一起,你可以用你的没有任何插件的角度:

<div ng-repeat="user in users"> 
    ID: {{user.ID}} - IDusr: {{user.IDusr}} 
    <h5>Images</h5> 
    <div ng-repeat="doc in user.docs"> 
     {{doc.doc_name}} <br> 
     {{doc.doc_type}} 
     <hr> 
    </div> 
    </div> 

这是一个plunker显示它如何工作。

+1

我感谢你的帮助... –