Wie kann ich die Stylesheets basierend auf dem Button-Klick in einer AngularJS 2.0-Anwendung wechseln?Angular JS 2.0 Switch-Stylesheets basierend auf Benutzereingabe
Wie im Moment bin ich Stylesheets auf den Kopf der Index.html Seite.
Wie kann ich die Stylesheets basierend auf dem Button-Klick in einer AngularJS 2.0-Anwendung wechseln?Angular JS 2.0 Switch-Stylesheets basierend auf Benutzereingabe
Wie im Moment bin ich Stylesheets auf den Kopf der Index.html Seite.
@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;
}
Ich würde die ngstyle Richtlinie nutzen:
<h1 [ngStyle]="{'font-style': style, 'font-size': size, 'font-weight': weight}">
Change style of this text!
</h1>
<div (click)="changeStyle()">Update style</div>
Updading die style
, size
Werte von einer Methode (mit einem Klick Ereignis verknüpft) wird Ihr Stil aktualisieren:
export class SomeComponent {
style = 'normal';
weight = 'normal';
size = '20px';
changeStyle($event: any) {
this.style = 'italic';
}
Ich habe zwei Stylsheets und basierend auf Benutzereingaben muss ich wechseln das gesamte Stylesheet ... ich möchte nicht auf der Komponentenseite definieren ... !! –
Ich stimme völlig zu, dass wir es durch Aufrufen der Methode aktualisieren können, aber Sie wechseln nicht die Stylesheets, Sie definieren die Stile in der Methode und rufen sie zur Änderung auf. –
Im ersten Teil müssen wir beide HTML-Dateien in den Index aufnehmen .html ?? und du definierst die Klasseneigenschaften im Komponentendekorator selbst, die ich nicht will ... Ich möchte alle Stile in CSS-Datei zB on.css und off.css definieren, also auf den Benutzer klicken Ich möchte Stylesheets ändern .. –
Nicht sicher was du unter "beide html-dateien" meinst. Wir sprechen über CSS, oder wollen Sie auch andere Vorlagen? Sie können diesen Stil in externe Dateien verschieben und stattdessen "styleUrls" verwenden, aber sie werden beide gleichzeitig geladen. Es könnte vorteilhaft sein, nur eine Style-Datei zu haben und alles hineinzulegen. Ich denke, die größere Dateigröße ist weniger belastend als einzelne Anfragen an den Server, die Dateien abzurufen. –
Eigentlich ist dies meine Anforderung, um 2 CSS-Dateien zu erhalten, z. B. dunkle und helle Stile CSS, so basierend auf Benutzer muss ich die Stylesheets ändern. Wie ich dein Plunker Beispiel gesehen habe, denke ich, dass es mein Problem lösen wird. Danke für die Hilfe !! –