AngularJS 2.0アプリケーションのボタンクリックに基づいてスタイルシートを切り替えるにはどうすればよいですか?ユーザー入力に基づく角型JS 2.0スイッチスタイルシート
今のところ私はindex.htmlページのheadセクションにスタイルシートを含めています。
AngularJS 2.0アプリケーションのボタンクリックに基づいてスタイルシートを切り替えるにはどうすればよいですか?ユーザー入力に基づく角型JS 2.0スイッチスタイルシート
今のところ私はindex.htmlページのheadセクションにスタイルシートを含めています。
@Component({
selector: ...,
template: ...,
styles: [`
:host(:not(.some-class)) {
border: solid 1px red;
}
:host(.some-class) {
border: solid 3px green;
}
`
]})
export class MyComponent {
@HostBinding('class.some-class') isSomeClass = true;
}
私はngStyleディレクティブを活用します:
style
をUpdading
<h1 [ngStyle]="{'font-style': style, 'font-size': size, 'font-weight': weight}">
Change style of this text!
</h1>
<div (click)="changeStyle()">Update style</div>
を、(クリックイベントにリンクされている)メソッドからsize
値は、あなたのスタイルを更新します。
export class SomeComponent {
style = 'normal';
weight = 'normal';
size = '20px';
changeStyle($event: any) {
this.style = 'italic';
}
私は2つのスタイルシートを持っていて、ユーザーの入力に基づいて切り替える必要がありますスタイルシート全体...私はコンポーネント側で定義したくない... !! –
私はメソッドを呼び出すことによってそれを更新することができますが、スタイルシートを切り替えていないことに完全に同意します。メソッドのスタイルを定義し、変更のために呼び出します。 –
最初の部分では、両方のhtmlファイルをindex.htmlに含める必要がありますか?あなたが望んでいないコンポーネントデコレータ自体でクラスプロパティを定義しています... CSSファイル(例えばon.cssとoff.css)ですべてのスタイルを定義したいので、ユーザーがクリックしてスタイルシートを変更したいと思います。 –
わかりません「両方のhtmlファイル」の意味私たちはCSSについて正しいことを話していますか、あるいは別のテンプレートも必要ですか?このスタイルを外部ファイルに移動し、コースの代わりに 'styleUrls'を使用することもできますが、それらは同時にロードされます。 1つのスタイルファイルを持ち、それを入れておくと便利かもしれません。ファイルサイズが大きいほど、サーバーにファイルをフェッチする個々の要求よりも負荷が小さいと思います。 –
実際には、これは私がスタイルシートを変更しなければならないユーザーに基づいて暗いライトスタイルCSSなどの2つのCSSファイルを維持するための私の要件です。私はあなたの大胆な例を見てきたので、私はそれが私の問題を解決すると思う。 –