2017-05-27 13 views
0

私は角度uiブートストラップを使用してカルーセルを作成しました。 jsonは以下の通りです。日付ルーンを使用して角度Uiブートストラップをフィルタリングする

{ 
    "directoryName": 
"http://localhost:8012/safcom/192.168.1.31_001215302a48/2017/01/pic/", 
    "imageDetails": [ 
    { 
     "fileName": "1229464294958932.jpg", 
     "fileCreationTime": "5/26/2017 1:30:00 PM" 
    }, 
    { 
     "fileName": "1229494294957556.jpg", 
     "fileCreationTime": "5/26/2017 1:31:00 PM" 
    }, 
    { 
     "fileName": "1234464294963514.jpg", 
     "fileCreationTime": "5/26/2017 1:32:00 PM" 
    }, 
    { 
     "fileName": "1242124294959420.jpg", 
     "fileCreationTime": "5/26/2017 1:36:00 PM" 
    }, 
    { 
     "fileName": "1242164294964790.jpg", 
     "fileCreationTime": "5/26/2017 1:36:00 PM" 
    } 
    ] 
} 

コントローラコード。

self.myInterval = 2000; 
self.noWrapSlides = false; 
self.active = 0; 
self.slides = []; 
var currIndex = 0; 

self.imagesUrls = response;(the json) 
angular.forEach(self.imagesUrls, function (parent) { 
    angular.forEach(parent.imageDetails, function (child) { 
     var date = uibDateParser.parse(
      child.fileCreationTime, 
      'M/d/yyyy h:mm:ss a'); 
     self.slides.push({ 
     image: parent.directoryName + child.fileName, 
     time: date, 
     id: currIndex++ 
     }); 
    }); 
}); 

テンプレート。

<div 
    uib-carousel active="$ctrl.active" 
    interval="$ctrl.myInterval" 
    no-wrap="$ctrl.noWrapSlides"> 
     <div uib-slide 
      ng-repeat="slide in $ctrl.slides track by $index" index="$index"> 
       <img ng-src="{{slide.image}}" style="margin:auto;"> 
     </div> 
     <div> 
      {{image.Id}} 
     </div> 
</div> 

どう 2017年5月26日午前1時36分○○秒PMに2017年5月26日1時32分00秒PMから画像を表示できるようにフィルタリングすることができますか?

助けてください!このように、繰り返しNG

app.filter("dateFilter", function() { 
    return function (slides, fromDate, toDate) { 
     var filteredSlides = []; 
     angular.forEach(slides, function (slide) { 
      if (slide.time !== undefined && slide.time >= fromDate && slide.time <= toDate) { 
       filteredSlides.push(slide); 
      } 
     }); 
     return filteredSlides; 
    } 
}); 

と、このフィルタを使用します:

<div uib-slide ng-repeat="slide in $ctrl.slides | dateFilter: fromDate : toDate track by $index" index="$index"> 
    <img ng-src="{{slide.image}}" style="margin:auto;"> 
</div> 

答えて

1

これは、時間によって配列を昇順にソートします

+0

@ T.Shah ....私は実際にこれを......感謝!!!!!!!!!!! –

1

は、日付のフィルタリングのためには、フィルタを作成する必要があります。

   self.imagesUrls = response.imageDetails; 
       //(the json) 

        self.imagesUrls.sort(function(a,b){ 
        // Turn your strings into dates, and then subtract them 
        // to get a value that is either negative, positive, or zero. 
        return new Date(a.fileCreationTime) - new Date(b.fileCreationTime); 
        });     

       console.log(self.imagesUrls); 
+0

おかげで....受け入れ答えとしてそれをマークし、アップ、それを投票してください –

+0

完璧に動作します。 –

関連する問題