Utilisez le filtre sur les options ng pour modifier la valeur affichée

J’ai un tableau de prix ( 0 , 0.99 , 1.99 … etc) que je veux afficher dans .

Je veux utiliser les ng-options d’Angular comme ceci

  

Comme il est affiché ci-dessus, il générera une sélection de 0 , 0.99 , 1.99

Mais je veux utiliser un filtre dans le code de telle sorte que chaque fois que le mot “prices” est présenté (ou quelque chose comme ça), le code exécutera une fonction pour changer les nombres flottants en chaînes et présenter ( free , 0.99$ , 1.99$ … etc).

J’ai un moyen de faire ça?

Merci

Il y a une meilleure façon:

 app.filter('price', function() { return function(num) { return num === 0 ? 'free' : num + '$'; }; }); 

Ensuite, utilisez-le comme ceci:

  

De cette façon, le filtre est utile pour des valeurs uniques, plutôt que de fonctionner uniquement sur des tableaux. Si vous avez des objects et des filtres de formatage correspondants, cela est très utile.

Les filtres peuvent également être utilisés directement dans le code, si vous en avez besoin:

 var formattedPrice = $filter('price')(num); 

Vous souhaitez créer le filtre personnalisé tel que:

 app.filter('price', function() { return function(arr) { return arr.map(function(num){ return num === 0 ? 'free' : num + '$'; }); }; }); 

l’utiliser comme:

  

Pardonner le pseudo-code

 data-ng-options="( obj.property | myFilter ) for obj in objects" app.filter('myFilter', function() { return function(displayValue) { return (should update displayValue) ? 'newDisplayValue' : displayValue; });