2017-02-17 4 views
1

Iは入力変数との成分を有する:問題は、私は、入力を変更する必要がある角度2 - どのngOnChangeに入力Bを変更する(入力Aを変化させることによってトリガ)

@Input() data: string[]; 
@Input() val: string = ''; 

ngOnChanges(changes: SimpleChanges) { 
    for (let propName in changes) { 
     if (propName == 'data') { 
      this.val = 'hello'; 
     } 
    } 
} 

の場合データが変更されました。しかし、私は次のエラーがあります:

Expression has changed after it was checked. Previous value: 'false'. Current value: 'true'. 

ありがとう!

答えて

0

それはあなたがまだエラーがその後、上記セッターでコメントアウト行で

constructor(private cdRef:ChangeDetectorRef) {} 

やコメントを追加取得した場合

_data: string[]; 
@Input() set data(val: string[]) { 
    this._data = val; 
    this.val = 'abc' 
    // this.cdRef.detectChanges(); 
} 
get data() { return this._data; } 

@Input() val: string = ''; 

をセッターを作成する方が簡単です。

+0

ありがとうございますが、** this.cdRef.detectChanges()**を使用しましたが、まだこのエラーがあります。 –

+0

「false」から「true」までどのような価値を変更しますか? –

関連する問題