diff --git a/demos/collection-repeat/index.html b/demos/collection-repeat/index.html
index 3721f1b827..463a9a5c93 100644
--- a/demos/collection-repeat/index.html
+++ b/demos/collection-repeat/index.html
@@ -6,7 +6,7 @@
Collection-Repeat: Early Preview
-
+
diff --git a/demos/collection-repeat/script.js b/demos/collection-repeat/script.js
index 045aa7e142..b594ca062e 100644
--- a/demos/collection-repeat/script.js
+++ b/demos/collection-repeat/script.js
@@ -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;
});
};