2017-06-01 17 views
0

私は、異なるクライアント/ユーザーに基づいて異なるスタイルを持つ状況があります。角度2+マルチクライアントマルチスタイルシート

私がログインしているクライアントを決定後、動的にスタイルをロードする必要がありますので、これらは、同じサイトからのすべてを実行します。

角度2でこれを行うための推奨方法は何ですか?つまり、私はjqueryを使いたくないのですか?

おかげ

+0

う '[ngStyle]'行うと、いくつかの解決策? – Umair

+0

いいえ、あまりにも多くのスタイルがあり、それらが変更される可能性があります – 72GM

答えて

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

は、推奨されていないコンポーネントから直接dom操作ですか? (私が推測するのを避けることはできないかもしれませんか?) – 72GM

+0

直接DOM操作はAngular2で完全に避けてください。代わりにバインディングを使用する - https://stackoverflow.com/questions/37376442/where-does-dom-manipulation-belong-in-angular-2 –

+0

あなたは私に直接dom操作の答えを与えるべきではないという奇妙なことは?あなたの心をかなり素早く変えました:) – 72GM