Я использую angularjs, чтобы показать историю акций, купленных и проданных по дате. Мои данные состоят из поля unixtimestamp. Я хочу соединить дату вместе, чтобы показать заголовок BAND даты и показать записи этой даты ниже заголовка.
В настоящее время я использую ng-repeat="x in transactions"
однако я не могу добавить пользовательское условие if, чтобы проверить, является ли дата новыми данными и вводит заголовок между напечатанными строками.
Вот как я хочу, чтобы результат был
Monday, 12th January 2015
MSFT,BUY,10,1000
YHOO,SELL,50,200
Tuesday, 13th January 2015
MSFT,SELL,40,500
Код в настоящее время
<div ng-repeat="x in transactions" >
{{ x.transaction_date *1000| date:'MMM-dd-yyyy'}}, {{x.transaction_type}}, {{x.stock_code | limitTo: 10}}, {{x.units}}, Rs. {{x.balance}}
</div>
вы можете ссылаться на ваш ng-if на функцию с фактическим элементом и последней датой. функция проверяет, имеет ли элемент ту же дату, что и последний элемент, и сохраняет фактическую дату в переменной области видимости для проверки следующей.
ng-repeat="item in transactions"
....
<div class="header" ng-if="ctrl.checkForNewDate(item)">
<!-- Header Content -->
</div>
in the controller
var vm = this;
vm.lastDate = new Date("2000/01/01");
vm.checkForNewDate = checkForNewDate;
function checkForNewDate(item) {
var dateItem = new Date(item.timestamp);
if (dateItem == vm.lastDate) {
return false;
} else {
vm.lastDate = dateItem;
return true;
}
код как прототип не проверен, извините за это ;-)