Mon application web fonctionne jusqu'à la partie 3 " Améliorez la structure du code avec les Services ", mais dès lors qu'il faut passer les informations de la vue app-component.html au nouveau component appareil-view, la boucle *ngFor ne passe plus, de ce que je comprends c'est qu'il n'arrive pas à récupérer les variables data binding, pourtant mon tableau appareils contient bien les 3 éléments de base. Je ne sais pas si finalement je devrais faire cette boucle plutôt dans appareil.component.html..
Voici le code correspondant en espérant que vous pourrez m'aider.
appareil-view-component.ts
import { Component, OnInit, Input } from '@angular/core';
import { AppareilService } from '../services/appareil.service';
@Component({
selector: 'app-appareil-view',
templateUrl: './appareil-view.component.html',
styleUrls: ['./appareil-view.component.scss']
})
export class AppareilViewComponent implements OnInit{
appareils: any[];
isAuth = false;
lastUpdate = new Promise((resolve, reject) => {
const date = new Date();
setTimeout(
() => {
resolve(date);
}, 2000
);
});
constructor(private appareilService: AppareilService) { }
ngOnInit() {
this.appareils = this.appareilService.appareils;
}
onAllumer() {
this.appareilService.switchOnAll();
}
onEteindre() {
if(confirm('Etes-vous sûr de vouloir éteindre tous vos appareils ?')) {
this.appareilService.switchOffAll();
} else {
return null;
}
}
}
appareil-view.component.html
<h2>Mes appareils</h2>
<div class="col-xs-12">
<p>Mis à jour : {{ lastUpdate | async | date: 'short' | uppercase }}</p>
<ul class="list-group">
<app-appareil-view *ngFor="let appareil of appareils; let i = index"
[appareilName]="appareil.name"
[appareilStatus]="appareil.status"
[index]="i"></app-appareil-view>
<button class="btn btn-success"
[disabled]="!isAuth"
(click)="onAllumer()">Tout allumer</button>
<button class="btn btn-danger"
[disabled]="!isAuth"
(click)="onEteindre()">Tout éteindre</button>
</ul>
</div>
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent { }
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.