peut ngOptions appeler une fonction pour obtenir l'affichage du texte?

J'ai un select tag que je suis de liaison à un tableau de la station de radio des objets en utilisant AngularJS. Mon objet a les propriétés suivantes:

{
    id: 'WXYZ',
    name: 'Radio Station Name (optional)',
    frequency: '89.7 FM'
}

J'aimerais que chaque élément dans la liste déroulante pour afficher "{id} - {name} - {fréquence}", comme l'affichage de texte, mais depuis que le nom de la propriété est facultative, je voudrais éviter les doubles tirets dans le cas où un objet n'a pas de valeur pour son nom.

J'ai été en mesure d'obtenir ce travail:

<select ng-model="StationPreference" ng-options="s.id+ ' - ' + s.name + ' - ' + s.frequency for s in stations">
    <option value="">-- select --</option>
</select>

Quelles sont les règles/lignes directrices/les meilleures pratiques pour l'appel d'une fonction à l'intérieur de ng-options? J'aimerais faire quelque chose comme getDisplayText(s) -- ce qui rend l'expression "valide angulaire"? la fonction doit être définie à l'intérieur de la portée? Peut-il en être de l'extérieur de la fonction définie? Est-ce la meilleure approche pour la fonctionnalité désirée?

Vous pouvez essayer de + s.name || 'No name supplied' +

OriginalL'auteur Brian Oliver | 2014-02-14