我正在根据angular material2项目创建自定义复选框。一切似乎首先工作,但是当我在代码中更新模型值时,即使angular注册了更改,复选框也不会取消选中。有关演示,请参阅plunker。
更新模型值的相关代码是:
private _parentValue:bool = false;
get parentValue()
{
return this._parentValue;
}
set parentValue(val)
{
this._parentValue = coerceBooleanProperty(val);
this.value1 = this._parentValue;
this.value2 = this._parentValue;
this.value3 = this._parentValue;
}
如果我在这里做了一些不正确的事情,我会提前道歉,因为这是我第一次发帖到堆栈溢出。
答案 0 :(得分:2)
我会按如下方式重写writeValue
方法:
writeValue(value: T) {
if (isDefined(value)) {
this._value = value;
}
}
其中isDefined
是一个类似
export function isDefined(val: any): boolean {
return val !== null && val !== undefined;
}
这样您的控件就可以使用false
值
<强> Forked Plunker 强>