Tengo un enlace de plantilla que muestra un atributo de modelo llamado 'fecha' que es una fecha, usando el filtro de fecha de Angular.
<span class="gallery-date">{{gallery.date | date:'mediumDate'}}</span>
Hasta aquí todo bien. Sin embargo, por el momento, si no hay valor en el campo de fecha, el enlace no muestra nada. Sin embargo, me gustaría que muestre la cadena 'Varios' si no hay fecha.
Puedo obtener la lógica básica usando un operador binario:
<span class="gallery-date">{{gallery.date || 'Various'}}</span>
Sin embargo, no puedo hacer que funcione con el filtro de fecha:
<span class="gallery-date">{{gallery.date | date:'mediumDate' || "Various"}}</span>
¿Cómo puedo usar el operador binario junto con el filtro de fecha?
{{(gallery.date | date:'mediumDate') || "0"}}
Hice el siguiente filtro:
Para ser utilizado así:
fuente
if (angular.isUndefined(defaultValue) || ... )
declaración dentro de la existente, a través de la cual eldefString
filtro devuelve la cadena "default
" (probablemente vendrán otros más adelante). Esto me permite usarlo<span>{{expected.string | defString}}</span>
y obtenerdefault
el nivel de respaldo final.Por si acaso quieres probar otra cosa. Esto es lo que funcionó para mí:
Basado en el operador ternario que tiene la siguiente estructura:
Como resultado:
fuente
¿Cómo puedo usar el operador binario junto con el filtro de fecha?
también intentas:
fuente
Realmente me gustó esta respuesta, con ngBind, su texto predeterminado solo puede vivir en el cuerpo del elemento, y luego, si ngBind se evalúa como algo no nulo / indefinido, su contenido se reemplaza automáticamente, y todo está contento
angularjs establece valores predeterminados para mostrar antes de la evaluación
fuente
En tu cshtml,
En su archivo JS, tal vez app.js,
Fuera de app.controller, agregue el siguiente filtro.
Aquí "mydate" es la función que está llamando para analizar la fecha. Aquí la "aplicación" es la variable que contiene el módulo angular.
fuente