2017-07-18 13 views
0

でクリックされているかどうかを知るためにどのようにチェックボックスが角度2

moduleNameList = ['test1', 'test2', 'test3', 'test4'] 
<li *ngFor="let module of moduleNameList"> 
<input [value]="module" type="checkbox"> {{module}}<br> 
</li> 

ユーザーを次のように私は、複数のチェックボックスを持っていますと、彼は私が何であるかを知りたいボタンをクリックし、最後に一度、すべてのチェックボックスをクリックすることができますユーザーがチェックした値。 誰でも私にこれを助けることができますか?

+0

の代わりに[value]を使用すると、[(ngmodel)]と(変更)= "changed($ event)"を入力要素に追加できます。 – riteshmeher

+0

ねえ、答えはどうやって行ったの?助けが必要なの? :) – Alex

+1

@ AJT_82:答えがありがとう、それは私のために働いたが、[ngValue]は私の代わりに働いていない[value] –

答えて

-2

我々は、通常のjqueryのアプローチを使用していたthis.If行うには多くの方法がありますが

<input class="foo" [value]="module" type="checkbox"> {{module}}<br> 

にご入力を設定し、その後、あなたは、代わりにクリックイベント

<script> 
     $('.foo').click(function(e) 
     { 
      var value = $(this).val(); 
      alert(value); 
     }); 
</script> 

のためにこれを行うことができます、このAdding parameter to ng-click function inside ng-repeat doesn't seem to workでng-clickを使用してみてください

1

私は最も簡単な方法は、アイテムをオブジェクトにすることです新しいプロパティ。たとえば、checkedのようにngModelに設定すると、ブール値trueがチェックされ、ブール値が反転されます。

moduleNameList=[{name:'test1', checked: false},{name:'test2', checked: false}, 
       {name:'test3',checked:false}] 

テンプレート:

<li *ngFor="let module of moduleNameList"> 
    <input [value]="module" type="checkbox" [(ngModel)]="module.checked"> 
    {{module.name}} 
</li> 

今、あなたはボタンクリックでその配列を反復処理し、trueとしてcheckedプロパティを持つオブジェクトかを確認することができます。

編集:小さな変更がOPに気づいた[ngValue]

関連する問題