2016-04-01 12 views
1

Ist es möglich, einen Funktionsnamen zu verwenden, um die ng-Klasse zu bezeichnen? Der Grund, warum ich frage, ist, weil ich in meiner grün/roten Färbung Buggy habe und ich habe viele Wege versucht, es zu beheben. Wenn dieser Trick funktioniert, dann weiß ich, dass ich etwas anderes ausprobieren kann. Wenn es funktionieren sollte, kann ich immer noch nicht erklären, warum meine Tabellen nicht so aussehen, wie sie sollten.kann ng-Klasse durch Funktionsaufruf gesetzt werden

Dies ist derzeit in meinem Code und funktioniert die gleiche Bugginess wie mein anderer Code.

<td ng-class="GetColor({{$index}})">{{ps.pval2}}</td> 




$scope.GetColor = function(z) {   //returns color string for use in ng-class 
    $scope.tmp = 'red'; 
    if($scope.PlayerStats[z].pval2.valueOf() > $scope.PlayerStats[z].pval3) { 
     tmp = 'green'; 
    } else if($scope.PlayerStats[z].pval2.valueOf() == $scope.PlayerStats[z].pval3){ 
      tmp = 'yellow'; 
    } else { 
      tmp = 'red'; 
    } 

    return tmp; 
}; 

Antwort

1

Sie brauchen nicht die geschweiften Klammern in Ihrem ng-Klasse-Hotel, aber ansonsten ist es durchaus lebensfähig:

<td ng-class="GetColor($index)">{{ps.pval2}}</td> 

Ich würde auf jeden Fall Ihre Komparatoren in Ihren if-Anweisungen überprüfen. Abhängig von den Datentypen Ihrer Variablen verhalten sie sich möglicherweise nicht so, wie Sie es erwarten würden.

+0

Die gleiche Antwort in Sekunden verdient +1 :) – Lex

+0

Wenn ich +2 Ihre Antwort könnte ich für nur ein Gewinner sein. – Gremash

2

Ja, sollte das funktionieren, aber Sie haben nicht die geschweiften Klammern um $index benötigen. Nur:

<td ng-class="GetColor($index)">{{ps.pval2}}</td> 
+2

Ich denke, wir schlagen gleichzeitig einreichen ... – Gremash