【问题标题】:Angular2 - Material2 - Custom CheckboxAngular2 - Material2 - 自定义复选框
【发布时间】:2017-10-31 13:44:23
【问题描述】:

我正在基于 angular material2 项目创建一个自定义复选框。一切似乎起初都在工作,但是当我在代码中更新模型值时,即使角度注册了更改,复选框也不会取消选中。有关演示,请参阅 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;
}

如果我在这里做错了什么,我提前道歉,因为这是我第一次发帖到堆栈溢出。

【问题讨论】:

    标签: angular checkbox angular-material2


    【解决方案1】:

    我会重写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

    【讨论】:

    • 哇!就是这样。我的印象是“writeValue”方法仅用于设置控件的初始值。谢谢!
    猜你喜欢
    • 2017-04-28
    • 2023-03-29
    • 2017-09-24
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 2017-05-25
    • 2017-10-31
    相关资源
    最近更新 更多