2017-11-14 1 views
0

Ich habe Schnipsel einer Ansicht. vm.items ist ein Objekt, jedes Objekt enthält eine E-Mail oder ein Telefon und den Code entsprechend. Zum Beispiel {value:'123456', code: 'phone'}.AngularJS Filter dynamisch gelten abhängig von Ausdruck

Die Frage ist, wie könnte ich Filter nur anwenden, wenn Element ein Telefon ist. Es bedeutet, dass der Code des Elements phone ist, und wenn es eine E-Mail ist, lass es so wie es ist. Ich dachte, ich könnte ternären Operator verwenden und etwas wie das haben: span {{item | item.code === "phone"? phone : '' }}, aber ich war nicht erfolgreich. Ich kann den Telefonfiltercode nicht ändern und keine Parameter an diesen Filter übergeben. Ich kann keinen neuen Filter für E-Mails erstellen.

+0

, was den Fehler war, wenn man versucht, 'Spanne {{item | item.code === "Telefon"? Telefon: ''}} '? –

+0

Ich habe einen Syntaxfehler '' 'angular.js: 14700 Fehler: [Syntax Syntax Syntax] Syntax Fehler: Token '.' ist ein unerwartetes Token in Spalte 12 des Ausdrucks [item | item.code === "Telefon"? Telefon: ''] ab [.code === "Telefon"? Telefon: ''] .''' – tawreon

+2

versuchen Sie '{{item.code ===" Telefon "? (item | phone): item}} ' –

Antwort

2

ich tun würde, folgende:

{{ item.code === "phone" ? (item | phone) : item }} 
+0

ja, das hätte ich auch gemacht: D –