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

Forked Plunker