2017-06-01 5 views
0

Ich habe eine Situation, in der ich unterschiedliche Stile basierend auf verschiedenen Clients/Benutzern haben werde.Angular 2+ Multi Clients Multi Stylesheets

Diese werden alle aus dem gleichen Ort ausgeführt werden, so dass ich im Stil laden müssen dynamisch, sobald ich bestimmen, welche Client angemeldet hat.

Was ist der empfohlene Weg, dies 2 in Schräg zu tun? d. ich möchte jquery nicht benutzen?

Dank

+0

Würde einige Lösung mit '[ngstyle]' tun? – Umair

+0

nein es wird zu viele Stile geben und sie können sich ändern – 72GM

Antwort

1

HTML:

<head> 
    <link id="theme" rel="stylesheet" href="red.css"> 
</head> 

TS:

import { Component, Inject } from '@angular/core'; 
import { DOCUMENT } from '@angular/platform-browser'; 

@Component({}) 
export class MyClass { 
    constructor (@Inject(DOCUMENT) private document) { } 

    ngOnInit() { 
     //here you can check for the users and then chnage depending upon the user 
     this.document.getElementById('theme').setAttribute('href', 'blue.css'); 
    } 
} 
+0

ist direkte Dom Manipulation von einer Komponente nicht empfohlen? (Kann nicht vermieden werden, denke ich?) – 72GM

+0

Direkte DOM-Manipulation sollte vollständig in Angular2 vermieden werden. Verwenden Sie Bindings statt ref - https://StackOverflow.com/Questions/37376442/where-does-ddom-manipulation-belong-in-angular-2 –

+0

seltsam, dass Sie mir eine direkte Dom Manipulation Antwort geben sollten nein? änderte deine Meinung ziemlich schnell :) – 72GM