Угловое ng-повторение с просмотром заголовка

Совершенно новый для нас угловатый, так голый со мной. Я знаю основное использование ng-repeat и я могу легко сгенерировать список.

 <ul> <li ng-repeat="presentation in presentations"> {{presentation.title}} </li> </ul> 

У меня есть массив, который возвращается из PHP:

 presentations = Array ( [0] => stdClass Object ( [collection] => Collection A [title] => Title 1a ) [1] => stdClass Object ( [collection] => Collection A [title] => Title 2a ) [2] => stdClass Object ( [collection] => Collection B [title] => Title 1b ) [3] => stdClass Object ( [collection] => Collection B [title] => Title 2b ) [4] => stdClass Object ( [collection] => Collection C [title] => Title 1c ) [5] => stdClass Object ( [collection] => Collection C [title] => Title 2c ) [6] => stdClass Object ( [collection] => Collection C [title] => Title 3c ) ) 

Вы заметите, что каждый объект имеет collection .

Мне нужно создать представление заголовка для каждой коллекции. Мне нужно, чтобы он отображался, как показано ниже:

 COLLECTION A - Title 1a - Title 2a COLLECTION B - Title 1b - Title 2b COLLECTION C - Title 1c - Title 2c - Title 3c 

Только заголовки будут доступны для просмотра. Возможно ли это с помощью ng-repeat ? Я знаю, что могу сортировать каждую коллекцию в отдельных массивах на PHP. Должен ли я сделать это первым? Я хотел бы просто использовать ng-repeat если это возможно, я просто не знаю, как подойти к этому.

Я планирую отображать этот список в nav-list как определено с помощью twitter bootstrap

нав-лист

Solutions Collecting From Web of "Угловое ng-повторение с просмотром заголовка"

Есть, вероятно, другой способ добиться этого с помощью директив, но

http://beta.plnkr.co/KjXZInfrDK9eRid2Rpqf

Вы определяете функцию, которую вы собираетесь вызывать, чтобы показать или скрыть заголовок:

 // just a hard coded list of objects, we will output a header when the title changes $scope.presentations = [{"title":"a", "other":"something else"},{"title":"a", "other":"something else"},{"title":"b", "other":"something else"},{"title":"b", "other":"something else"}, {"title":"b", "other":"something else"}] $scope.currentTitle = '-1'; $scope.CreateHeader = function(title) { showHeader = (title!=$scope.currentTitle); $scope.currentTitle = title; return showHeader; } 

Ваш html будет выглядеть примерно так:

 <ul> <li ng-repeat="presentation in presentations"> <div ng-show="CreateHeader(presentation.title)"> {{presentation.title}} is the header </div> {{presentation.other}} is an attribute on the collection item </li> </ul>