Je crée la variable window encore et encore comment puis-je la déclarer une seule fois? J'ai essayé de l'ajouter au constructeur mais cela n'a pas fonctionné.
import { Component } from '@angular/core'; import { ElectronService } from 'ngx-electron'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.sass'] }) export class AppComponent { title = 'ae-test'; constructor( private _ES: ElectronService, ) {} minWindow() { const window = this._ES.remote.getCurrentWindow(); window.minimize(); } fullscreenWindow() { const window = this._ES.remote.getCurrentWindow() if (window.isFullScreen() == true) { window.setFullScreen(false); } else { window.setFullScreen(true); } } closeWindow() { const window = this._ES.remote.getCurrentWindow(); window.minimize(); } }
5 Réponses :
Définissez une nouvelle propriété dans votre composant et attribuez-la une fois dans votre constructeur (ou mieux ngOnInit
si vous implémentez le hook de cycle de vie OnInit
):
private window: any; constructor(private _ES: ElectronService) { this.window = this._ES.remote.getCurrentWindow(); }
ajoutez la variable window
au composant et définissez-la dans le hook ngOnInit
:
this.window = this._ES.remote.getCurrentWindow();
utilisez simplement une variable globale
import { Component } from '@angular/core'; import { ElectronService } from 'ngx-electron'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.sass'] }) export class AppComponent { title = 'ae-test'; window = null; constructor( private _ES: ElectronService, ) { this.window = this._ES.remote.getCurrentWindow(); } minWindow() { this.window.minimize(); } fullscreenWindow() { if (this.window.isFullScreen() == true) { this.window.setFullScreen(false); } else { this.window.setFullScreen(true); } } closeWindow() { this.window.minimize(); } }
vous pouvez également initialiser la fenêtre dans la fonction ngOnInit
Vous pouvez résoudre votre problème avec cette réponse. C'est donc une question répétée possible:
Créez simplement un service singleton partagé
export class CComponent { data; constructor(public _g:GlobalService) { } reset() { const data = this._g.getData(); // ð data.value = 0; } inc(){ const data = this._g.getData(); // ð data.value +=10; } }
remarquez que chaque fois que vous demandez des données, vous obtenez le même objet. il est nécessaire de créer une propriété dans le corps du composant sauf si vous souhaitez afficher l'objet dans le modèle
Le service partagé ou singleton n'est qu'un service ajouté à la liste des fournisseurs de modules AppModule ou root
export class AComponent implements OnInit { data; constructor(public _g:GlobalService) { } ngOnInit() { this.data = this._g.getData() } }
si vous souhaitez rendre des données à partir de l'objet de données, vous devez créer une propriété dans le corps du composant a, b pour contenir une référence de l'objet.
@NgModule({ ... providers: [GlobalService] }) export class AppModule { }
liez-le simplement à une propriété de classe et initialisez-le dans le constructeur.