2017-01-16 5 views
1

私は、顧客の病歴を示すアプリケーションを持っています。各挿入にはIDがあります。次のようになります。角にあるオブジェクトをフィルタリングする

enter image description here

私はあなたが入力すると、検索機能を、持っている

が、私は

<input id="episode-id-input" placeholder="Search by episode ID..." type="text" class="validate" ng-model="vm.searchEpisodeById"> 

私のデータがロードされる方法は、このようなものですIDによって表示フィルタを希望、ng-repeat経由:

<div ng-class="{ 
    'kept'  :person.pastAppointmentStatus == 'KEPT APPT.', 
    'cancelled':person.pastAppointmentStatus == 'CANCELLED', 
    }" class="past-appointments-meta-holder"> 


     <div class="meta-holder-title"> 
     <p class="meta-holder-title-name"> 
      {{person.activeReferralsType}} 
     </p> 
     <p class="meta-holder-title-date"> 
      {{person.activeReferralsDate| date:'MMMM dd, yyyy'}} | {{person.activeReferralsTime}} 
     </p> 
     <p class="meta-holder-title-status"> 
      {{person.pastAppointmentStatus}} 
     </p> 
     <p class="episode-id"> 
      EPISODE ID: {{person.episodeId}} 
     </p> 
     </div> 

オブジェクトは、次のようになります。

, "historyContainer" : [ 
       { 
        "activeReferralsType" : "new patient diabetic eye exam" 
        , "episodeId" : "9876" 
        , "activeReferralsDate" : new Date('1998-10-19') 
        , "activeReferralsTime" : "2:00PM" 
        , "referredFromName" : "Karen Rush, MD" 
        , "referredFromAddressFacilityName" : "Random Family Practice" 
        , "referredFromAddressFacilityAddressLineOne" : "1108 Cedar Road" 
        , "referredFromAddressFacilityAddressLineTwo" : "Chesapeake" 

       } 
       ,{ 
        "activeReferralsType" : "new patient diabetic eye exam" 
        , "episodeId" : "87678678" 
        , "activeReferralsDate" : new Date('1998-10-19') 
        , "activeReferralsTime" : "2:00PM" 
        , "referredFromName" : "Karen Rush, MD" 
        , "referredFromAddressFacilityName" : "Random Family Practice" 
        , "referredFromAddressFacilityAddressLineOne" : "1108 Cedar Road" 
        , "referredFromAddressFacilityAddressLineTwo" : "Chesapeake" 

       } 
       ] 

私は、前の角度でフィルタ機能を使用したことがない、誰かが持っている唯一のdiv秒を表示するには、それがロードされた後、私はng-repeatをフィルタリングする方法を私に示してください可能性ユーザーが入力したIDですか?

答えて

2

このようなことができます。フルコードについては、this fiddleを参照してください。

<div class="meta-holder-title" ng-repeat="person in person | filter: { episodeId: searchEpisodeById }"> 
+0

このアプローチの問題は、それがまたactiveReferralsTypeに基づいてフィルタリングするだけではなく、フィルタリングということです役に立てば幸い – madhur

+0

@madhur私はあなたが意味するものを得ました。私はその状況に対応するための答えを更新しました。 – whyyie

+0

ありがとう!私のオブジェクトが同じであっても、エラー:[エラー:[フィルタ:配列]配列が期待されていますが受信されました:0」が返されています... – IWI

0

あなたはこのようにそれを行うにしたいと思いますが、それは

function myCtrl($scope) { 
 
    $scope.persons = [ 
 
    {episodeId:1}, 
 
    {episodeId:2}, 
 
    {episodeId:3}, 
 
    {episodeId:4}, 
 
    {episodeId:5}, 
 
    {episodeId:6}, 
 
    {episodeId:7} 
 
    ]; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app > 
 
<div ng-controller="myCtrl"> 
 
    <input id="episode-id-input" placeholder="Search by episode ID..." type="text" class="validate" ng-model="search.episodeId"> 
 
    <div ng-repeat="person in persons| filter:search"> 
 
      <p class="episode-id"> 
 
      EPISODE ID: {{person.episodeId}} 
 
      </p> 
 
     </div> 
 
    </div> 
 
</div>

関連する問題