Это мои данные JSON:
{
result: 1,
vote_time_slots: {
2016-08-07: {
diff: 1080,
slots: {
08:42: false, 09:36: false, 06:54: false, 04:30: false,
09:18: false, 09:00: false, 08:24: false, 05:42: false,
06:00: false, 10:12: false, 08:06: false, 06:36: false,
07:12: false, 07:48: false, 05:24: false, 06:18: false,
09:54: false, 07:30: false, 10:30: false, 05:06: false,
04:48: false
}
},
2016-07-25: {
diff: 1080,
slots: {
08:42: false,
09:36: false,
06:54: false,
}
},
Я хочу, чтобы временные интервалы вроде 08:42, 09:36 и так далее, чтобы попасть в раскрывающийся список.
скажите, пожалуйста, как перейти в поле слотов и получить только значения слотов. Отфильтровано на false (это значение)
<li ng-repeat="c in eventTimings | filter: ????:false"><a>{{(c)}}
как показать на основе фильтра также?
Если у меня есть истинное значение, соответствующий временной интервал не должен отображаться в раскрывающемся списке.
Попробуйте вот так:
slots = {
"08:42": false, "09:36": false, "06:54": false, "04:30": false,
"09:18": false, "09:00": false, "08:24": false, "05:42": false,
"06:00": false, "10:12": false, "08:06": false, "06:36": false,
"07:12": false, "07:48": false, "05:24": false, "06:18": false,
"09:54": false, "07:30": false, "10:30": false, "05:06": false,
"04:48": false
};
var arr = [];
for(var prop in slots) { arr.push(prop); }
console.log(arr);
Отсюда вы повторяете на обеде
ng-repeat="opt in arr" ...
Вам придется перебирать свойства слотов (так как это в объектном формате). Перед тем, как задать вопрос, выполните поиск в stackoverflow.
Посмотрите, помогает ли ответ в следующей ссылке и записывает пользовательский фильтр с использованием логики:
Вы можете попробовать это простое решение:
<li ng-repeat="(key, value) in data.slots" ng-if='!value'>{{key}}</li>
Другой подход - создать настраиваемый фильтр:
HTML:
<li ng-repeat="(key, value) in data.slots | custom : false">{{key}}</li>
Javascript:
.filter('custom', function() {
return function(input, search) {
var result = {};
angular.forEach(input, function(value, key) {
if (value == search) {
result[key] = value;
}
});
return result;
}});