J'ai une liaison de modèle qui affiche un attribut de modèle appelé 'date' qui est une date, en utilisant le filtre de date Angular.
<span class="gallery-date">{{gallery.date | date:'mediumDate'}}</span>
Jusqu'ici tout va bien. Cependant, pour le moment, s'il n'y a aucune valeur dans le champ de date, la liaison n'affiche rien. Cependant, je voudrais qu'il affiche la chaîne «Divers» s'il n'y a pas de date.
Je peux obtenir la logique de base en utilisant un opérateur binaire:
<span class="gallery-date">{{gallery.date || 'Various'}}</span>
Cependant, je ne peux pas le faire fonctionner avec le filtre de date:
<span class="gallery-date">{{gallery.date | date:'mediumDate' || "Various"}}</span>
Comment puis-je utiliser l'opérateur binaire avec le filtre de date?
{{(gallery.date | date:'mediumDate') || "0"}}
J'ai fait le filtre suivant:
A utiliser comme ceci:
la source
if (angular.isUndefined(defaultValue) || ... )
instruction à l'intérieur de l'existant, à travers laquelle ledefString
filtre renvoie la chaîne "default
" (d'autres viendront probablement plus tard). Cela me permet de l'utiliser comme<span>{{expected.string | defString}}</span>
et d'obtenirdefault
le niveau de secours final.Juste au cas où vous voudriez essayer autre chose. C'est ce qui a fonctionné pour moi:
Basé sur l'opérateur ternaire qui a la structure suivante:
À la suite:
la source
Comment puis-je utiliser l'opérateur binaire avec le filtre de date?
vous essayez également:
la source
J'ai vraiment aimé cette réponse, avec ngBind, votre texte par défaut peut simplement vivre dans le corps de l'élément, puis si le ngBind évalue quelque chose de non nul / indéfini, votre contenu est remplacé automatiquement et tout est heureux
angularjs définition des valeurs par défaut à afficher avant l'évaluation
la source
Dans votre cshtml,
Dans votre fichier JS, peut-être app.js,
En dehors de app.controller, ajoutez le filtre ci-dessous.
Ici, "mydate" est la fonction que vous appelez pour analyser la date. Ici, "app" est la variable qui contient le module angular.
la source