2017-05-30 85 views
3

我正在創建基於angular material2項目的自定義複選框。一切似乎第一次工作,但是當我更新代碼中的模型值時,即使角度註冊更改,複選框也不會取消檢查。演示請參閱plunkerAngular2 - Material2 - 自定義複選框

相關的代碼來更新模型值是:

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; 
} 

我提前道歉,如果我做了一些不正確這裏,因爲這是我第一次張貼到堆棧溢出。

回答

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

+0

哇!就是這樣。我的印象是'writeValue'方法僅用於設置控件的初始值。謝謝! –