2017-12-27 13 views
0

이것은 작동하지 않습니다. 어딘가에서 구문 문제가 발생하면 몰라요.필터가있는 ng-style이 작동하지 않습니다.

필터가 양수를 반환하는 경우에도 항상 색상 비스크가 표시됩니다.

<td class="calculatedCol" ng-style= "({{termsList|totalDeviationByKey:'oldspnd':'spend':'optspnd'}})> 0 ? {'color': 'black'} : {'color': 'bisque'}" > 
{{termsList|totalDeviationByKey:'oldspnd':'spend':'optspnd' |number:2 }}%</td> 

JS 파일의 필터는 다음과 같습니다

app.filter('totalDeviationByKey', function() { 
    return function (data, key1, key2,key3) { 
     if (typeof (data) === 'undefined' || typeof (key1) === 'undefined' || typeof (key2) === 'undefined') { 
      return 0; 
     } 

     var sum1 = 0; 
     var sum2 = 0; 
     var sum3 = 0; 

     for (var i = data.length - 1; i >= 0; i--) { 
      sum1 += parseInt(data[i][key1]); 
      sum2 += parseInt(data[i][key2]); 
      sum3 += parseInt(data[i][key3]); 

     } 
     var A = sum1/sum2; 
     var B = sum3/sum2; 

     return ((A-B)/A)*100; 


    } 
}); 
+0

무엇을'{{termsList | totalDeviationByKey 'oldspnd': '지출': 'optspnd를'| 수 : 2}}'인쇄? –

+0

@Sachila Ranawaka이 (가) 편집을 확인합니다. –

답변

1

는, 하나의 중괄호를 사용하는 이중 중괄호를 제거하고 다음과 같이 삼항 동작을 변경합니다.

ng-style = "{'color': ((termsList|totalDeviationByKey:'oldspnd':'spend':'optspnd')> 0)? 'black' : 'bisque'}" 
+0

감사합니다. ng-style에 이상한 구문이 필요하므로 항상 "{ 'css attribute': .... 등}으로 시작해야합니까? –

+0

예. 그게 최선의 방법입니다. –