Отобразите информацию JSON в раскрывающемся списке. Angularjs

0

Это мои данные 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)}}

как показать на основе фильтра также?

Если у меня есть истинное значение, соответствующий временной интервал не должен отображаться в раскрывающемся списке.

  • 0
    Пожалуйста, дайте больше информации о ваших данных JSON. Что вы подразумеваете под навигацией?
  • 0
    навигация означает, что мне нужно перейти к объекту slots, чтобы получить от него информацию. Сначала из voice_time_slots -> 2016-08-07 -> slot ---> получить необходимую информацию
Показать ещё 1 комментарий
Теги:
arrays

3 ответа

1

Попробуйте вот так:

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" ...
  • 0
    как перейти к слоту в JSON .. мне нужно сначала перейти к этому ...
0

Вам придется перебирать свойства слотов (так как это в объектном формате). Перед тем, как задать вопрос, выполните поиск в stackoverflow.

Посмотрите, помогает ли ответ в следующей ссылке и записывает пользовательский фильтр с использованием логики:

Итерация через свойства объекта

  • 0
    пожалуйста, скажите мне, как перейти к слотам в моем JSON, чтобы получить информацию из него
0

Вы можете попробовать это простое решение:

<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;
}});
  • 0
    пожалуйста, скажите мне, как перейти к слотам в моем JSON, чтобы получить информацию из него
  • 1
    Этот ответ дает вам полную картину того, что делать. Я не понимаю ваш вопрос, что вы подразумеваете под "переход к слотам"?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню