在Angular2中,我创建了一个需要打开和关闭的模式窗口。在开发过程中,我偶然发现了一些奇怪的东西:Angular2组件视图不会通过方法更新值更改
当我使用外部按钮更改我的Modal class
中的activate
变量时。该视图不更新。
在控制台中打印activate
变量没有任何问题。我看到了true和false之间的变量切换。
它看起来像我缺少强制视图呈现与新值的代码。
有没有人有一个想法,我可能会错过这里?
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;
}
}
我不知道@ViewChild感谢! –