孤独プログラマー譚

孤独死が近い。

Angular 全て選択チェックボックス

連動するチェックボックス
テンプレート部分。

foo<input type="checkbox" [(ngModel)]="foo">
bar<input type="checkbox" [(ngModel)]="bar">
baz<input type="checkbox" [(ngModel)]="baz">
<br>
all<input type="checkbox" [(ngModel)]="all">


ロジック部分。ゲッターとセッターを利用する。

foo = false
bar = false
baz = false

get all() {
  return this.foo && this.bar && this.baz
}

set all(v) {
  const getObj = (bool) => {
    return {
      foo: bool,
      bar: bool,
      baz: bool,
    }
  }
  if (this.all) {
    Object.assign(this, getObj(false))
  } else {
    Object.assign(this, getObj(true))
  }
}