数値を表示するAngular 2アプリがあります。番号は、負または正であり得る。値が負の場合、私はフォントの色を赤に設定しています。私は指示でこれをやっています。この番号はエミッタを介して常に更新されます。角2のディレクティブチェンジの検出、ディレクティブが更新されない
私が抱えている問題は、値が負の値から正の値に変わるときです。ディレクティブはこの変更を選択していないため、実行が非常に遅いです。つまり、色が更新されていません。私は画面上のどこかをクリックしてフォントの色が変わってしまいます。 必要なときに変更検出が行われているとは思わない。
このディレクティブを基礎となる値と同時に更新するにはどうすればよいですか?
私のディレクティブは、このようになります...
import { Directive, ElementRef, Input } from '@angular/core';
@Directive({ selector: '[negativeValueStyle]' })
export class NegativeValueStyleDirective {
constructor(private el: ElementRef) { }
ngAfterContentChecked() {
if (this.el.nativeElement.innerHTML < 0)
this.el.nativeElement.style.color = 'red';
else
this.el.nativeElement.style.color = 'black';
}
}
それは、このようなUIに適用されている...角度を使用するには間違ったアプローチのように見えます
<td negativeValueStyle>{{data.return | number: '1.2-2'}}%</td>
ありがとう、それは良いことです。私はCSSのスタイルを設定するNg2ウェブサイトの例をコピーしていたが、私はこれがより好きです。 https://angular.io/docs/ts/latest/guide/attribute-directives.html#!#write-directive –