私はそれを得た箱から頭を出すためにちょっとしたナッジを求めています。Angular 2+コンポーネントの複雑なCSSを動的に設定する方法は?
コンテキスト角度CLIおよびIBMアカデミーを用い
角度4。
https://angular.io/docs/ts/latest/guide/component-styles.htmlで言及されるすべてのメソッドは、開発者によって書かれている間成分の複雑なCSSを設定する方法を記載しています。
コンポーネントが作成された後、角度は個々のスタイルを調整しても、タグにさまざまなCSSクラス名を割り当てるコンポーネントにあなたのようにしてください、すべての[ngClass]
、<div [class.something]="condition">
、様々な@HostBinding
デコレーターや他のいくつかの方法を使用していることをすることができます。
ただし、上記のいずれもコンポーネントが使用しているCSS宣言を変更することはできません。方法は、上記(a)のスタイルシート開発者によって定義されたか、(b)成分のテンプレートでは、個々のHTMLタグに個別のCSSプロパティを設定するには、すでに利用可能なものを使用することができます。
質問
そのコンポーネントのすべての要素は、新しいCSSに対応するようにどのように私は、実行時にコンポーネント全体のためのCSSを更新しますか?
私はdiv.someClassに新しいスタイルを導入しました、そして、私はすべての要素div.someClassに新しいスタイルを反映させたいと思います。
Plunker
私の試みのショーケースはここにある:https://plnkr.co/edit/N2C40cSb7hd1AyOxWWdT
ボタンは、私はそれが動作しない理由を私は理解して考えるMyChildComponent.styles
の値に基づいて、赤でなければなりません私が期待する方法は:まもなく、テンプレート内<style />
タグ内に見られるものを含め、実行時ではないスタイルは、コンパイル時にコンポーネントで構築されている、と述べました。
しかし、それは動作しない理由を知って、それを動作させるために私を助けていません。
ご協力いただきありがとうございます。新しいCSSクラスを挿入
ありがとうございます。残念ながら、それは私が恐れていることを確認します。変更したいすべてのボタンにスタイルを割り当てる必要があります。私は、ユースケースで何百ものHTMLタグにカスタムスタイルを適用したいと考えています(何百ものサムネイル画像をリストし、その境界のCSSを変更したいときなど)。このようにスタイルを割り当てると、パフォーマンスが低下する可能性が高くなります。私はこのアプローチをテストします。 –
@JanKlanボタンには、コンポーネントからのみ、@Input()を通さずに、ボタンにCSSクラスを適用できます。このためにngClassを探します。そこにあなたのCSSを移動することは可能ですか? – brijmcq
私の目標は、コンポーネントの作成後にCSSクラス定義を変更することですが、動的クラス名を要素に割り当てないことは役に立ちません。私は運が尽きているように見える。 –