2017-01-03 11 views
2

Как добавить строку (css-class) в родительский компонент? Различные страницы должны иметь возможность добавлять класс к элементу контейнера.Angular 2 добавить строку (css-class) в parent Компонент

app.component.ts:

@Component({ 
    selector: 'app-root', 
    template: ` 
     <div class="container {{ ADD HERE }}"> 
      <router-outlet></router-outlet> 
     </div> 
    ` 
}) 
export class AppComponent { 
    title = 'app works!'; 
} 

page1.component.ts:

@Component({ 
    template: ` 
     <p>I'm page 1!</p> 
    ` 
}) 
export class Page1Component { 
     containerClasses = "page-1"; 
} 

ответ

4
@Component({ 
    template: ` 
     <p>I'm page 1!</p> 
    ` 
}) 
export class APageComponent { 
    constructor(private elRef:ElementRef) { 
    } 

    containerClasses = "page-1"; 

    ngAfterViewInit() { 
    this.elRef.nativeElement.parentElement.classList.add(this.containerClasses); 
    } 
} 
+0

хорошо выглядит! А как насчет услуги? – Mick

+0

Возможно, я также хочу поделиться дополнительной информацией, например «отобразить заголовок»? от дочернего к родительскому компоненту. Также элемент не должен быть родителем в dom для доступа к нему с nativeElement.parentElement – Mick

+0

Конечно, вы всегда можете использовать общую службу для связи компонентов https://angular.io/docs/ts/latest/cookbook/component-communication. HTML #! # двунаправленного-сервис –

 Смежные вопросы

  • Нет связанных вопросов^_^