Как вы делаете троичный с AngularJS (в шаблонах)?
Было бы неплохо использовать некоторые атрибуты html (классы и стиль) вместо создания и вызова функции контроллера.
источник
Как вы делаете троичный с AngularJS (в шаблонах)?
Было бы неплохо использовать некоторые атрибуты html (классы и стиль) вместо создания и вызова функции контроллера.
Обновление : Angular 1.1.5 добавил троичный оператор , так что теперь мы можем просто написать
<li ng-class="$first ? 'firstRow' : 'nonFirstRow'">
Если вы используете более раннюю версию Angular, у вас есть два варианта:
(condition && result_if_true || !condition && result_if_false)
{true: 'result_if_true', false: 'result_if_false'}[condition]
пункт 2. выше создает объект с двумя свойствами. Синтаксис массива используется для выбора либо свойства с именем true, либо свойства с именем false и возврата соответствующего значения.
Например,
<li class="{{{true: 'myClass1 myClass2', false: ''}[$first]}}">...</li>
or
<li ng-class="{true: 'myClass1 myClass2', false: ''}[$first]">...</li>
Для $ first установлено значение true внутри ng-repeat для первого элемента, поэтому приведенное выше применило бы классы 'myClass1' и 'myClass2' только первый раз в цикле.
С ng-class есть более простой способ: ng-class принимает выражение, которое должно принимать одно из следующих значений:
Пример 1) был приведен выше. Вот пример 3, который, я думаю, читается намного лучше:
<li ng-class="{myClass: $first, anotherClass: $index == 2}">...</li>
В первый раз через цикл ng-repeat добавляется класс myClass. В третий раз ($ index начинается с 0) добавляется класс anotherClass.
ng-style принимает выражение, которое должно соответствовать карте / объекту с именами стилей CSS и значениями CSS. Например,
<li ng-style="{true: {color: 'red'}, false: {}}[$first]">...</li>
ng-style
обновить, но, похоже, он будет оцениваться только при первом отображении элемента. (Угловой нуб здесь)Обновление: в Angular 1.1.5 добавлен троичный оператор, этот ответ верен только для версий, предшествующих 1.1.5. Для версии 1.1.5 и более поздних версий см. Принятый в настоящее время ответ.
До Angular 1.1.5:
Форма тройного в angularjs это:
Примером может быть:
или:
источник
Для текстов в угловом шаблоне (
userType
это свойство $ scope, например $ scope.userType):источник
К настоящему времени все мы узнали, что версия 1.1.5 имеет правильную троицу в
$parse
функции, поэтому просто используйте этот ответ в качестве примера фильтров:А затем использовать его как
источник
Вот оно: троичный оператор добавлен в угловой парсер в 1.1.5 ! см. список изменений
Вот скрипка, показывающая новый троичный оператор, используемый в директиве класса ng.
источник
Хотя вы можете использовать
condition && if-true-part || if-false-part
-syntax в более старых версиях angular, обычный троичный операторcondition ? true-part : false-part
доступен в Angular 1.1.5 и более поздних версиях .источник
Кнопка переключения и изменения заголовка кнопки и показать / скрыть панель Div. Смотреть Plunkr
источник