Angular2 - Material2 - 自定义复选框

时间:2017-05-30 22:55:17

标签: angular checkbox angular-material2

我正在根据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;
}

如果我在这里做了一些不正确的事情,我会提前道歉,因为这是我第一次发帖到堆栈溢出。

1 个答案:

答案 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