Angular 从暗模式将参数从页面传递到app.component
您好,我使用这个git为我的项目启用暗模式 它可以工作,但我想把切换按钮放在页面中,而不是app.component.htmlAngular 从暗模式将参数从页面传递到app.component,angular,ionic-framework,Angular,Ionic Framework,您好,我使用这个git为我的项目启用暗模式 它可以工作,但我想把切换按钮放在页面中,而不是app.component.html <ion-app [class.dark-theme]="dark"> <ion-split-pane contentId="main-content"> <ion-item> <ion-icon slot="start"
<ion-app [class.dark-theme]="dark">
<ion-split-pane contentId="main-content">
<ion-item>
<ion-icon slot="start" name="moon-outline"></ion-icon>
<ion-label>
Dark Mode
</ion-label>
<ion-toggle [(ngModel)]="dark"></ion-toggle>
</ion-item>
</ion-split-pane>
</ion-app>
黑暗主题就是这样
<ion-app [class.dark-theme]="dark">
<ion-split-pane contentId="main-content">
<ion-item>
<ion-icon slot="start" name="moon-outline"></ion-icon>
<ion-label>
Dark Mode
</ion-label>
<ion-toggle [(ngModel)]="dark"></ion-toggle>
</ion-item>
</ion-split-pane>
</ion-app>
import {BehaviorSubject} from "rxjs";
export class GlobalService {
public darkModeToggleState = new BehaviorSubject(false);
constructor(){}
}
export class GlobalService {
public darkModeToggleState = new BehaviorSubject(false);
constructor(){}
}
app.component.ts
import { GlobalService } from './services/global.service/global.service';
@Component({
selector: 'app-root',
templateUrl: 'app.component.html',
styleUrls: ['app.component.scss'],
providers: [GlobalService],
})
export class AppComponent implements OnInit {
dark;
dark;
constructor(private globalSrvc:GlobalService){
this.globalSrvc.darkModeToggleState.subscribe(value=>{
this.dark = value
}
}
app.component.html将类更改为深色
<ion-app [class.dark-theme]="dark">
<ion-router-outlet></ion-router-outlet>
</ion-app>
您可以设置行为主题以跟踪此切换。像这样做 在组件html文件中
<ion-toggle [(ngModel)]="dark" (ionChange)="darkToggled($event)"></ion-toggle>
新服务文件global.service.ts
import {BehaviorSubject} from "rxjs";
export class GlobalService {
public darkModeToggleState = new BehaviorSubject(false);
constructor(){}
}
export class GlobalService {
public darkModeToggleState = new BehaviorSubject(false);
constructor(){}
}
在你的app.component.ts中
import { GlobalService } from './services/global.service/global.service';
@Component({
selector: 'app-root',
templateUrl: 'app.component.html',
styleUrls: ['app.component.scss'],
providers: [GlobalService],
})
export class AppComponent implements OnInit {
dark;
dark;
constructor(private globalSrvc:GlobalService){
this.globalSrvc.darkModeToggleState.subscribe(value=>{
this.dark = value
}
}
使用此功能,您可以在任何位置将暗模式切换添加到多个组件。我已进行了更新,以便显示我所做的操作。没有错误,但当更改toggle nothing Happens时,请在app.component.ts中放置断点,并查看当您这样切换时,
this.dark
值是否更新。globalSrvc.darkModeToggleState.subscribe(值=>{this.dark=value;console.log(value);});返回false,当toggle返回UndefinedHanks man时,它现在工作。对于未来提到车坛的答案工程!!!