2016-09-01 2 views
9

オブジェクトの特定の属性にバインドされたチェックボックスのグループを含む、Angular2(RC5)でテンプレート駆動型を作成します。今、私は、このような基を有していても、同様に対応する配列に囲まれた:これは非常に簡単ですがangle2必要な属性を持つチェックボックスのグループ

<div class="checkbox" *ngFor="let prop of properties"> 
    <label> 
    <input type="checkbox" name="option" id="option [(ngModel)]="prop.state"/> 
    {{prop.name}} 
    </label> 
</div> 

、私は、チェックボックスのこのグループに必要属性を追加する方法を見つけ出すことはできません。私がそれを意味するのは、ユーザにを少なくとも選択させなければならないということです。グループチェックボックスの1つであるでなければ、フォームの検証は失敗します。

アイデア?

+2

これはボットですか?私は角度2について話しています... – mpilliador

+0

あなたはこれを見ましたか?http://stackoverflow.com/questions/6218494/using-the-html5-required-attribute-for-a-group-of-checkboxes – wickdninja

答えて

1

私はすなわち

properties = [ 
    { state: false }, 
    { state: false }, 
    { state: false }, 
    // ... etc 
]; 

少なくとも一つは、それぞれの上(ngModelChange)を聞くことによってチェックされている場合は、把握でき、私が正しく読んでいる場合は、あなたの状態のすべてを持つオブジェクトまたは配列を持っていると仮定要素。それが発火するとき、あなたはその後、小道具の状態の少なくとも一つはすなわち、あなたのテンプレートファイルで、真実であることを確認するためにチェックすることができます。

<input type="checkbox" name="option" id="option" [(ngModel)]="prop.state" (ngModelChange)="onCheckboxChange()"/> 

そして、あなたのクラスでは、atLeastOnePropIsTrueのようなフィールドがあり、その後、あなたのonCheckboxChange関数は次のようになります。

function onCheckboxChange() { 
    this.atLeastOnePropIsTrue = this.properties.find(a => a.state === true) != null; 
} 

これは正確ではありませんが、うまくいくでしょう。

関連する問題