Ich habe eine Situation, in der ich eine dynamische Tabelle erstellen, in der Zellen ein Datenaggregat mit mehreren ng-if
-Anweisungen enthalten. Grundsätzlich muss ich wissen, ob keine der if-Anweisungen wahr ist, also kann ich einen anderen ng-if
tun.Winkelprüfung für eine oder mehrere ng-if-Anweisungen ist true
Dies ist ein vereinfachtes Beispiel für das, was ich mache. Es gibt ungefähr 20 Spalten mit unterschiedlichen aggregierten Ergebnissen.
<table>
<tr ng-repeat="record in data">
<td>
<span ng-if="record.some_number > 0 && record.type == 'SomeType'">{{data1}}</span>
<span ng-if="record.age >= 20 && record.age <= 50 && record.gender == 'MALE'">{{data2}}</span>
<span ng-if="(record.age <= 20 || record.age >= 50) && record.gender == 'FEMALE'">{{data3}}</span>
<span ng-if="!(record.some_number > 0 && record.type == 'SomeType') && !(record.age >= 20 && record.age <= 50 && record.gender == 'MALE') && !((record.age <= 20 || record.age <= 50) && record.gender == 'FEMALE')">{{data4}}</span>
</td>
</tr>
<table>
ich einen ng-Schalter nicht, weil die Bedingungen ganz andere sind verwenden können. Dies ist eine Zusammenfassung von Daten, nicht wenn/sonst. Ich bevorzuge eine andere Herangehensweise als einfach ein '!' zu jeder Bedingung in einem anderen Bereich, weil einige meiner Aggregate viele Bedingungen enthalten und einige der if-Anweisungen nicht trivial sind. Es gibt auch viele Aggregatzellen, so dass die Wartung der allzu komplizierten "anderen" Bedingungen ein Albtraum wäre.
Idealerweise würde ich gerne nur in der Lage sein, eine einzige Variable True auf jede ng-if
-Anweisung zuzuweisen, die wahr ist. Irgendwelche Gedanken?
Sie sollten eine Variable für '$ scope' erstellen, die Sie Ihren Bedingungen zuordnen können, anstatt alle Prüfungen im JS durchzuführen. – SoluableNonagon
Ja. Genau das möchte ich tun, bin mir aber nicht sicher, wie das mit ng-if-Anweisungen funktioniert. Ich nehme an, der einzige Weg, das zu tun, ist in meinem Controller. Das ist nicht ideal, denn dann muss ich meine Bedingungen an zwei Stellen aufrechterhalten. – Gremash
Ich werde Ihnen ein Beispiel in einer Antwort zeigen – SoluableNonagon