У меня возникли проблемы с выяснением того, как использовать директиву ng-if с определенным свойством в массиве объектов.
Массив:
[{"Id":1087,
"CreateDate":"2015-11-02T19:26:39.007",
"Message":"Some text in here...",
"AffectedDate":null,
"Type":"a",
"CreatePeriod":"Today",
"CreateDateString":"Monday, November 2, 2015 7:26 PM"},
{"Id":1086,
"CreateDate":"2015-11-02T19:26:25.2",
"Message":"Some text in here...",
"AffectedDate":null,
"Type":"a",
"CreatePeriod":"Yesterday",
"CreateDateString":"Monday, November 2, 2015 7:26 PM"},
{"Id":1085,
"CreateDate":"2015-11-02T19:26:13.677",
"Message":"Some text in here...",
"AffectedDate":"2015-10-30T07:00:00",
"Type":"a",
"CreatePeriod":"Older",
"CreateDateString":"Monday, November 2, 2015 7:26 PM"}]
Выше представлен массив объектов, и я хотел бы использовать директиву ng-show для следующего заголовка.
<h3 ng-show="">Last Week</h3>
Свойство, которое я хочу использовать с ng-show, - CreatePeriod
Используя вышеприведенный HTML, поскольку нет объекта с CreatePeriod
с "Last Week", я хочу скрыть этот заголовок.
Можно ли это сделать с помощью простого ng-show? Или мне нужно использовать ng-repeat в сочетании с ng-show?
Благодарю!
Вы можете создать метод в контроллере, чтобы проверить свое состояние:
$scope.data = [{
"Id": 1087,
"CreateDate": "2015-11-02T19:26:39.007",
"Message": "Some text in here...",
"AffectedDate": null,
"Type": "a",
"CreatePeriod": "Today",
"CreateDateString": "Monday, November 2, 2015 7:26 PM"
}, {
"Id": 1086,
"CreateDate": "2015-11-02T19:26:25.2",
"Message": "Some text in here...",
"AffectedDate": null,
"Type": "a",
"CreatePeriod": "Yesterday",
"CreateDateString": "Monday, November 2, 2015 7:26 PM"
}, {
"Id": 1085,
"CreateDate": "2015-11-02T19:26:13.677",
"Message": "Some text in here...",
"AffectedDate": "2015-10-30T07:00:00",
"Type": "a",
"CreatePeriod": "Older",
"CreateDateString": "Monday, November 2, 2015 7:26 PM"
}];
$scope.checkCreatePeriod = function(value) {
var result = false;
angular.forEach($scope.data, function(obj) {
if (obj['CreatePeriod'] === value && result === false) {
result = true;
}
});
return result;
}
Ввиду:
<h3 ng-show="checkCreatePeriod('LastWeek')">Last Week</h3>
"CreatePeriod":"Last Week"
, верно?