2016-09-01 43 views
9

gerekli niteliklere sahip bir onay kutusu grubu oluşturmak için bir nesnenin belirli niteliklerine sınırlanmış bir onay kutularını içeren Angular2 (RC5) şablon tabanlı bir form oluşturmak istiyorum. Bu oldukça basit olmasına rağmenangular2 onay kutusu

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

i check-kutularından bu gruba bir gerekli öznitelik eklemek için anlamaya olamaz: Şu anda, ben gibi karşılık gelen diziye sınırlandırılmış böyle bir grup var. Bununla demek istediğim, kullanıcı grup onay kutularından birini AT LEAST AT seçmek için zorlamak gerekiyor, aksi halde doğrulama işlemi başarısız olur.

Herhangi bir fikrin var mı?

+2

Bu bir bot mu? Angular 2 hakkında konuşuyorum ... – mpilliador

+0

Bu http://stackoverflow.com/questions/6218494/using-the-html5-required-attribute-for-a-group-of-checkboxes'i gördünüz mü? – wickdninja

cevap

1

Ben, eğer doğru okuyorum eğer senin devletlerin hepsi ile bir nesne ya da dizi var galiba en az bir her biri üzerinde (ngModelChange) dinleyerek kontrol edilir, eğer

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

Sen çıkaramadı.Microsoft yani elementler. ardından onCheckboxChange

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

Ve sınıfında

, atLeastOnePropIsTrue gibi bir alan varsa ve: etkinleştiği zaman, o zaman Prop en devletlerin emin, en az bir olmak için kontrol edebilirsiniz şablon dosyasında yani doğrudur işlev şu şekilde görünebilir:

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

Tam olarak güzel değil, ama işe yarayacak.