Use el filtro en ng-options para cambiar el valor mostrado

Tengo una serie de precios ( 0 , 0.99 , 1.99 … etc.) que quiero mostrar en .

Quiero usar las ng-options de Angular como esta

  

Como se muestra arriba, generará una selección de 0 , 0.99 , 1.99

Pero quiero usar un filtro en el código para que cada vez que se presente la palabra ‘precios’ (o algo así), el código ejecute una función para cambiar los números de flotación a cadenas y presente ( free , 0.99$ , 1.99$ … etc).

¿Hay alguna manera de hacer eso?

Gracias

Hay una mejor manera:

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

Entonces úsalo así:

  

De esta manera, el filtro es útil para valores únicos, en lugar de operar solo en matrices. Si tiene objetos y filtros de formato correspondientes, esto es bastante útil.

Los filtros también se pueden usar directamente en el código, si los necesita:

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

Desea crear el filtro personalizado como, por ejemplo:

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

Úselo como:

  

Perdonen el pseudo código

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