【发布时间】:2020-10-13 10:20:41
【问题描述】:
我有以下角度组件:
ComponentB 具有输入属性,componentA 在模板文件中插入 componentB。
代码如下:
componentA.ts:
export class ComponentA{
isOpen: boolean;
methodA() {
this.isOpen = false;
// do some work
}
}
组件A.html:
<componentB [(open)]="isOpen"></componentB >
ComponentB.ts:
@Component({
selector: 'componentB',
templateUrl: 'ComponentB .html',
encapsulation: ViewEncapsulation.None,
})
export class ComponentB {
private _open: boolean = false;
@Input('open') set open(value: boolean) {
if (open === this._open) {
return;
}
if (open) {
// doSomething()
} else {
// doSomethingElse()
}
this._open = open;
}
get open() {
return this._open;
}
}
问题是isOpen 属性似乎没有反映open 属性的当前值,尽管指定了两种方式绑定。
为什么会这样? 怎么解决?
【问题讨论】:
标签: angular getter-setter property-binding