0

Angular 4 で :host 疑似クラスを問題なく使用しています。Angular 5 に変換していますが、スタイルがホスト コンポーネントに追加されていないようです。Angular の新しいバージョンでこれを追加する別の方法はありますか?

:host {
  border: 10px solid black;
  &.isLeft {
    display: flex;
  }
}

@media (max-width: 599px) {
  :host {
    display: flex;
  }
}

isLeft クラスは、親コンポーネントからコンポーネントに渡されるパラメータに基づいて設定されます。これは、この特定のコントロールを 2 つの異なる形式で表示でき、そのうちの 1 つがレスポンシブであるためです。コンポーネント内には、次のコードがあります。

  @HostBinding('class.isLeft') isLeft: boolean; 

  @Input()
  placement: string = 'responsive';

  ngOnInit() {
    this.isLeft = (this.placement.toLowerCase() === 'left');
  }

このすべてを行うために @HostBinding を使用するという提案があることは知っています。まず第一に、メディア クエリを使用する必要がある場合に、それがどのように機能するかわかりません。第二に、これで @HostBinding を使用する唯一の方法は、コンポーネント内にスタイリングを含めることであり、これは当社の基準に反します。

前もって感謝します!

4

2 に答える 2