我有一个使用 Material (2.0.0-beta.1) 的 Angular 2 (2.4.3) 应用程序,我在复选框上的绑定方面遇到了一些问题。
我想要一个根据我的组件中的布尔值有条件地检查的复选框。单击时,我想切换布尔值。
所以我这样做了:
private _showName: boolean = true;
在 HTML 中:
<md-checkbox (click)="toggleName()" [checked]="_showName"></md-checkbox>
toggleName()
看起来像这样:
toggleName(): void {
this._showName = !this._showName;
let ctrl = this._searchForm.get('name');
ctrl.enabled ? ctrl.disable() : ctrl.enable();
}
使用它,当我单击复选框时:
- bool
_showName
被切换为 false - 但复选框保持选中状态
第二次单击复选框时,它会取消选中自身并再次切换布尔值,从而使逻辑颠倒。
如果我[checked]
使用这样的字符串进行设置:
<md-checkbox (click)="toggleName()" [checked]="true"></md-checkbox>
该复选框在第一次单击时取消选中,并且 bool 被切换,但现在我无法将它绑定到 bool。因此,如果我从我的组件中更改布尔值,它不会反映到复选框。
我可能做错了什么,但是查看官方文档中的“示例”我无法弄清楚我哪里出错了。