demo(collection-repeat): only show letters that match searched names

This commit is contained in:
Andy Joslin
2014-04-24 09:20:21 -06:00
parent 08d0718883
commit 78a31936de
2 changed files with 16 additions and 2 deletions

View File

@@ -6,7 +6,7 @@
<title>Collection-Repeat: Early Preview</title>
<link href="http://code.ionicframework.com/nightly/css/ionic.min.css" rel="stylesheet">
<script src="http://code.ionicframework.com/nightly/js/ionic.bundle.js"></script>
<script src="http://code.ionicframework.com/nightly/js/ionic.bundle.min.js"></script>
<link href="style.css" rel="stylesheet">
<script src="script.js"></script>
<script src="contacts.js"></script>

View File

@@ -31,10 +31,24 @@ function MainCtrl($scope, $ionicScrollDelegate, filterFilter) {
}
$scope.getContacts = function() {
var contactsByLetter = {};
return contacts.filter(function(item) {
return !$scope.search || item.isLetter ||
var itemDoesMatch = !$scope.search || item.isLetter ||
item.first_name.toLowerCase().indexOf($scope.search.toLowerCase()) > -1 ||
item.last_name.toLowerCase().indexOf($scope.search.toLowerCase()) > -1;
if (!item.isLetter && itemDoesMatch) {
var letter = item.last_name.charAt(0).toUpperCase();
contactsByLetter[letter] = contactsByLetter[letter] || 0;
contactsByLetter[letter]++;
}
return itemDoesMatch;
}).filter(function(item) {
if (item.isLetter && !contactsByLetter[item.letter]) {
return false;
}
return true;
});
};