2017-01-08 3 views
0

Я двуязычный веб-сайт епа и ар каждый язык имеет свой собственный стиль, и я хотел бы динамически загрузить таблицу стилей на основе выбранного языказагрузки таблицы стилей условно Угловой 2

любой идею о том, как реализовать такой с помощью Angular2?

здесь является компонентом декоратор

@Component({ 

selector: 'recent-recognition', 
template: require('./recent.recognition.component.html'), 
styles: 
[ 
    //I want to load only one of these based on if condition 
    require('./recent.recognition.component.css'), 
    require('./recent.recognition.component.ar.css') 
] 
}) 

У меня также есть translate.service, который содержит текущий язык и ссылается в этом компоненте успешно.

ответ

2

Вы можете использовать ДОКУМЕНТ для переключения темы как this-

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

    @Component({ 
      selector: 'app-root', 
      template: ` 
       <label class="switch"> 
       <input type="checkbox" [checked]="theme" (change)="toggleTheme($event)"> 
       <div class="slider round"></div> 
       </label> 
      `, 
    }) 

    export class SomeComponent { 

    constructor (@Inject(DOCUMENT) private document) { } 

    toggleTheme(e: any) { 
    this.theme = !this.theme; 

    if(this.theme) { 
      this.document.getElementById('theme').setAttribute('href', 'condition1.css'); 
    } 
    else { 
      this.document.getElementById('theme').setAttribute('href', 'condition2.css'); 
    } 

    } 
} 

Артикул: https://angular.io/docs/ts/latest/api/platform-browser/index/DOCUMENT-let.html

+0

являются ли заявления должны быть в 'ngOnInit'? – georgej

+0

@georgej ссылка обновленный код. – Sanket

+0

Я не понимаю, вы установили href какого типа тега? какой элемент темы? – fdsfdsfdsfds