У меня есть привязка шаблона, которая отображает атрибут модели под названием «дата», который является датой, с использованием фильтра даты Angular.
<span class="gallery-date">{{gallery.date | date:'mediumDate'}}</span>
Все идет нормально. Однако в данный момент, если в поле даты нет значения, привязка ничего не отображает. Тем не менее, я хотел бы, чтобы отображалась строка «Разное», если нет даты.
Я могу получить основную логику, используя бинарный оператор:
<span class="gallery-date">{{gallery.date || 'Various'}}</span>
Однако я не могу заставить его работать с фильтром даты:
<span class="gallery-date">{{gallery.date | date:'mediumDate' || "Various"}}</span>
Как я могу использовать бинарный оператор вместе с фильтром даты?
{{(gallery.date | date:'mediumDate') || "0"}}
Я сделал следующий фильтр:
Быть использованным так:
источник
if (angular.isUndefined(defaultValue) || ... )
оператор внутри существующего, через которыйdefString
фильтр возвращает строку "default
" (другие, вероятно, появятся позже). Это позволяет мне использовать его как<span>{{expected.string | defString}}</span>
и получитьdefault
в качестве окончательного запасного уровня.На всякий случай, если вы хотите попробовать что-то еще. Вот что сработало для меня:
На основе троичного оператора, который имеет следующую структуру:
В результате:
источник
Как я могу использовать бинарный оператор вместе с фильтром даты?
Вы также пытаетесь:
источник
Мне очень понравился этот ответ, с ngBind, ваш текст по умолчанию может просто жить в теле элемента, а затем, если ngBind оценивает что-то ненулевое / неопределенное, ваш контент заменяется автоматически, и все устраивает
angularjs устанавливает значения по умолчанию для отображения перед оценкой
источник
В вашем cshtml,
В вашем файле JS, возможно, app.js,
Вне app.controller добавьте фильтр ниже.
Здесь «mydate» - это функция, которую вы вызываете для анализа даты. Здесь «app» - это переменная, которая содержит angular.module
источник