2015-08-14 2 views
1

Объект в вопросе выглядит следующим образомФильтра объект данных в день углового JS

{{ 
    schedule['Monday'] 
    schedule['Tuesday'] 
    .... 
}} 

мне нужно:

  • получить schedule['{{date | 'EEEE'}}']
  • выдели его в шаблоне HTML
  • дисплей что-то вроде {{date | 'EEEE'}} 's schedule is {{schedule['{{date | 'EEEE'}}]}}

Я пытаюсь использовать цикл, чтобы создать это в течение нескольких дней недели. используйте ng-repeat и фильтруйте текущий день.

Это нужно сделать, чтобы написать другой HTML-код для текущего сценария дня и других дней - пример Добавить пользовательский класс.

ответ

2

Предполагается, что объект будет итерирован в определенном порядке (по-видимому, дни недели должны) является ошибкой здесь. Это вызовет проблемы как для кода Angular-specific, так и для JS.

Всегда придерживаться массивов при переборе объектов:

<div ng-repeat="day in days | filter:'Monday'">{{ schedule[day] }}</div> 

Предпочтительно, чтобы явно определить

$scope.days = ['Monday', 'Tuesday']; 

вместо

$scope.days = Object.keys($scope.schedule); 

именно по причинам, указанным выше.

Пример: http://plnkr.co/edit/EnntuwwDgKIvxWRubTCQ?p=preview

+0

Мы не должны повторять в определенном порядке. Данные всегда приходят в порядок, хотя. Я просто хочу, чтобы фильтр проверял текущий день, а затем отобразил расписание для текущего дня, используя расписание ['Friday'] Вместо того, чтобы говорить фильтр: «понедельник» можно проверить на текущий день –

+0

Если это данные JSON, то вы не может полагаться и на свой порядок. Непонятно, о чем вы просите. Что было «EEEE» в исходном вопросе? Вы можете сделать '{{schedule [today]}}', если это единственный день, который вы хотите. – estus

+0

Я пытаюсь сделать это:

{{ schedule[day] }}
Я хочу получить дополнительный класс, добавленный, когда {{schedule [day]}} на сегодня. И не добавляйте это в остальные дни. –

Смежные вопросы