2013-12-06 2 views
0

Я пытаюсь создать ежемесячный календарь с помощью Angular.js, и я не могу найти способ вывода выражений при выполнении условий.Условное выражение в шаблонах Angular.js

<tr> 
    <td ng-repeat="date in dates"> 
     {{date}} 
    </td> 
    {{'</tr><tr>' | if date.getDay() === 0}} 
    </tr> 

Или

<tr> 
    <td ng-repeat="date in dates"> 
     {{date}} 
     {{ if date.getDay() === 0 expr = '</tr><tr>' else expr = ''}} 
    </td> 
    {{expr}} 
    </tr> 

Как я могу добиться этого?

Спасибо.

+0

Ваш код подразумевает, что ваша дата является объектом. Если да, то {{date}} будет отображать строковое представление этого объекта. – mitch

+0

Я просто скопировал код примера из моего проекта, неважно, является ли это объектом даты. – Sebastian

+0

@fdomig ответ - хороший выбор. Используйте ng-repeat. Если ваша коллекция нуждается в фильтрации, добавьте фильтр в ng-repeat. – mitch

ответ

2

Вы можете использовать встроенную директиву ng-if.

<tr ng-if="date.getDay() === 0"> 

Лучшее решение может быть вложенным ng-repeat так что вам даже не придется делать эти проверки. Например:

<tr ng-repeat="week in weeks"> 
    <td ng-repeat="day in week.days">...</td> 
</td> 
+0

Я не могу использовать ng-if, потому что добавление тега tr не помогло бы мне, мне нужно закрыть тег и открыть его, чтобы я мог перейти к следующей строке. – Sebastian

+0

Вы можете использовать 'ng-if' в обоих тегах' 'и' '. – fdomig

+0

Чтобы добавить к @fdomig, добавьте фильтр для фильтрации дней, в которые getDay() возвращает ноль. – mitch

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