2016-09-01 33 views
9

我想在Angular2中創建一個模板驅動的表單(RC5),這將包括一組複選框,綁定到對象的特定屬性。現在,我有這樣的團體,界像相應的陣列:angular2組的複選框與所需的屬性

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

雖然這是非常簡單的,我無法弄清楚如何將需要屬性添加到該組的複選框。我的意思是,我需要強制用戶選擇至少其中一個組複選框,否則表單驗證將失敗。

任何想法?

+2

這是一個robot嗎?我正在談論Angular 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; 
} 

它不完全漂亮,但它會工作。