Angular2 - Material2 - 自定义复选框
Angular2 - Material2 - Custom Checkbox
我正在基于 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;
}
如果我在这里做错了什么,我提前道歉,因为这是我第一次在 stack overflow 上发帖。
我会重写 writeValue
方法如下:
writeValue(value: T) {
if (isDefined(value)) {
this._value = value;
}
}
其中 isDefined
是一个类似于
的函数
export function isDefined(val: any): boolean {
return val !== null && val !== undefined;
}
这样您的控件就可以使用 false
值
我正在基于 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;
}
如果我在这里做错了什么,我提前道歉,因为这是我第一次在 stack overflow 上发帖。
我会重写 writeValue
方法如下:
writeValue(value: T) {
if (isDefined(value)) {
this._value = value;
}
}
其中 isDefined
是一个类似于
export function isDefined(val: any): boolean {
return val !== null && val !== undefined;
}
这样您的控件就可以使用 false
值