アングル4とマテリアル2で再生しています。 私は複数のテーマを作りたいと思います。コンポーネントで同じテーマを使用する
私はangularjsのチュートリアルを読んでも、材料2 上のテーマについて読んだ私はまたhttps://material2-app.firebaseapp.com/ で例を確認しかし、彼らは、ただ1つのコンポーネントを使用して、私は皆に同じテーマを適用したいです。 これを可能にする方法はありません。 :S
app.component.ts
import { Component, Optional } from '@angular/core';
import '../assets/css/styles.css';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
isDarkTheme: boolean = false;
}
app.component.html:
<main [class.theme-dark]="isDarkTheme">
<md-sidenav-container>
<md-sidenav class="sidenav" #start (open)="closeStartButton.focus()">
Start Sidenav.
<button md-button [routerLink]="['./dashboard']" routerLinkActive="active" (click)="start.close()">Dashboard</button>
<br>
<button md-button #closeStartButton (click)="start.close()">Close</button>
</md-sidenav>
<md-toolbar color="primary">
<button class="icon-button" (click)="start.open()">
<i class="material-icons toolbar-menu">menu</i>
</button>
Test
<span class="toolbar-filler"></span>
<button md-button (click)="isDarkTheme = !isDarkTheme">TOGGLE THEME</button>
</md-toolbar>
<div class="content">
<router-outlet></router-outlet>
</div>
</md-sidenav-container>
</main>
dashboard.component.ts:
import { Component } from '@angular/core';
@Component({
selector: 'my-dashboard',
templateUrl: './dashboard.component.html',
styleUrls: [ './dashboard.component.css' ]
})
export class DashboardComponent {
}
私がこの権利を理解しているのは、テーマがカプセル化されているからです。 しかし、「トグルテーマ」を押すと、他のコンポーネントにも適用されます。すなわち、 私は光から闇
に変更するために、私はdashboard.componentに同じテーマ(app.component.scssを)したいapp.componentに切り替えたときに、これは、それが今のようになります。
ありがとう、私は愚かなエラーを見つけました...この "カプセル化:ViewEncapsulation.None"をapp.component.tsに追加しました。 –