Может кто-то, пожалуйста, позвольте мне одолжить ваши глаза на секунду, потому что это должен быть какой-то немой маленький нюанс, которого я здесь не хватает...?
Так, например, в ng-repeat я вытаскиваю значение и бросаю внутри него выражение inline (в этом примере просто изменяя цвет текста в зависимости от того, сколько дней прошло это значение):
EDIT * - scope.item ничего не значит, в частности, я просто немного изменил формулировку, чтобы избавиться от любых идентифицирующих имен ради интернет-примера.
ng-class="{
'green-text':{{daysSinceToday(item.theItemDate) <= 20}},
'orange-text':{{daysSinceToday(item.theItemDate) > 20 && daysSinceToday(item.theItemDate) < 30}},
'red-text':{{daysSinceToday(item.theItemDate) >= 30}}
}">
Что работает великолепно, за исключением того, что когда я выхожу за пределы области ng-repeat и пытаюсь что-то подобное, но используя только [0]
в индексе элемента, как вы видите, я все еще могу получить значение для отображения, но это doesn Кажется, что он вообще не заботится о выражениях класса ng и вместо этого просто захватывает первый класс, указанный в ng-классе, независимо от его значения.
Поэтому, если я делаю что-то вроде этого ВНЕШНЕГО ng-repeat;
ng-class="{
'someclass':{{daysSinceToday(scope.item[0].theItemDate) <= 20}},
'anotherclass':{{daysSinceToday(scope.item[0].theItemDate) > 20 && daysSinceToday(scope.item[0].theItemDate) < 30}},
'yetanotherclass':{{daysSinceToday(scope.item[0].theItemDate) >= 30}}
}">
Это, похоже, не заботит, что странно, потому что, если я просто поставлю его туда, как будто;
{{daysSinceToday(scope.item[0].theItemDate)}}
Без выражения это дает мне правильное значение, но, похоже, игнорирует ng-класс. Что мне здесь не хватает? Я, должно быть, устал, и этот понедельник должен закончиться высокой нотой. Благодарю!
Хах! Файл под я Blame Недостаток кофеина, вы хотите:
ng-class="{
'someclass':daysSinceToday(scope.item[0].theItemDate) <= 20,
'anotherclass':daysSinceToday(scope.item[0].theItemDate) > 20 && daysSinceToday(scope.item[0].theItemDate) < 30,
'yetanotherclass':daysSinceToday(scope.item[0].theItemDate) >= 30
}">
... внутри ng-класса не требуется никаких завитушек.
(Правила для того, когда вам нужно {{}}, и когда вы не производите и сбиваете с толку легко упускать из виду, как это здесь совершенно ясно видно)
Вы не получите доступ к нему как scope.item[0]
. Я не уверен, что является переменной, которую вы ng-repeat
в ng-repeat
но, предполагая, что вы используете что-то вроде items
, вы должны получить к нему доступ только с items[0].whatever(...