In Angular2 erstelle ich ein modales Fenster, das ein- und ausgeschaltet werden muss. Während der Entwicklung stolperte ich über etwas Seltsames:Die Angular2-Komponentenansicht wird bei der Wertänderung über die Methode
Wenn ich die activate
Variable in meinem Modal class
mit einem externen Knopf ändere. Die Ansicht wird nicht aktualisiert.
Das Drucken der activate
Variable in der Konsole geht ohne Probleme. Ich sehe die Variable zwischen true und false umschalten.
Es sieht aus wie ich Code fehlt, der die Ansicht zwingt, mit den neuen Werten zu rendern.
Hat jemand eine Idee was ich hier vielleicht vermisse?
Der Code unten in einer Plunkr
app.ts
import {Component} from 'angular2/core';
import {Modal} from './modal';
@Component({
selector: 'my-app',
providers: [Modal],
template: `
<div>
<button (click)="toggle()">toggle</button>
<button (click)="showActivate()">print</button>
<modal></modal>
</div>
`,
directives: [Modal]
})
export class App {
constructor(private modal: Modal) {
}
showActivate() {
this.modal.showActivate();
}
toggle() {
this.modal.toggleActivate();
}
}
modal.ts
import {Component, Injectable} from 'angular2/core'
@Component({
selector: 'modal',
template: `
<div>
<h2>Modal: {{activate}}</h2>
</div>
`,
directives: []
})
@Injectable()
export class Modal {
activate: true;
constructor() {
this.activate = false;
}
showActivate() {
console.log('Modal:showActivate', this.activate);
}
toggleActivate() {
console.log('Modal:toggleActivate', this.activate);
this.activate = !this.activate;
}
}
ich nicht wusste über @ViewChild Dank! –