2017-12-27 22 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

what '{{termsList | totalDeviationByKey:' oldspnd ':' spend ':' optspnd '| number:2}} 'prints? –

+0

@Sachila Ranawaka編集を確認します。 –

答えて

1

は、単一の中括弧を使用する二重中括弧を削除し、次のように三元動作を変更します。

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

これはうまくいきました。ng-styleは奇妙な構文を必要とするので、 "{'css attribute':....など}で始めるべきですか? –

+0

これは最善の方法です –

関連する問題