在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感謝! –