こんにちは人々StackOverflow!角2:コンポーネントの入力変数が呼び出された後に更新されません
私のコードに問題があります。ご覧のとおり、毎回クラスを入力したくないので、設定された幅(ブートストラップ形式)で行を呼び出せるようにしたいと考えています。
だから私は、次のされている方法を考えた:
import { Component, Input } from '@angular/core';
@Component({
moduleId: module.id,
selector: 'content',
template: ` <div class="row">
<div [ngClass]="contentClass"
id="content"
[ngStyle]="{ 'color': 'black', 'font-size': '20px' }">
<ng-content></ng-content>
</div>
</div>`,
styleUrls: ['content.stylesheet.css']
})
export class ContentComponent {
@Input() rowWidth = "12";
contentClass=(("col-lg-" + this.rowWidth)+(" col-sm-" + this.rowWidth)+(" col-xs-" + this.rowWidth));
}
しかし、私は別のコンポーネントからコンポーネントを呼び出すと、それは私が望むように働いていません。私は、例えば
<content [ngStyle]="{'color': 'black'}"></content>
を使用した場合
<banner bannerHeight="300px"></banner> <!-- This works -->
<content rowWidth="6"></content> <!-- This doesn't -->
操作が成功します。ディレクティブとインポートは、親コンポーネントで正しく設定されています。
ここに私の質問です:私はそれを私が望むように動作させるにはどうすればいいですか?それは動作しません
これはトリックでした!私は完全にライフサイクルのフック..ルーキーミスを忘れてしまった。これがcontentClassのトリックをしたように、すべての入力変数に対してこのようなことを実装するのがベストプラクティスですか、それとも処理時間(例えば計算や連結)に費やされているときだけですか? – wuhkuh
初期設定時に入力を使用したい場合は、yes(ほとんどの場合)にはライフサイクルフックが必要です。 – lexith