2016-09-16 90 views
0

下面是代碼:如何知道複選框是否被選中?

<input type="checkbox" value="Blue" (click)="var=$event.target.getAttribute('value')" /> 

當我打印在控制檯var,我得到的複選框「Blue」但是如果我想如果複選框被選中或不得到什麼的value

我都試過,但我得到undefined

<input type="checkbox" value="Blue" (click)="var=$event.target.getAttribute('checked')" /> 
+0

[ngModel](https://angular.io/docs/ts/latest/api/forms/index/NgModel-directive.html)可能是更好的解決方案獲取用戶輸入。 – tcooc

+0

我的目標是擁有多個複選框並將複選框狀態和值發送到管道。我不認爲ngModel在這種情況下會很好,因爲它會綁定到所有複選框? – Elkin

+0

我的意思是如果我點擊一個複選框,所有其他複選框將被選中/點擊 – Elkin

回答

1

如果你想的名稱和複選框每個輸入的值存儲在一個關鍵價值對,ngModel是一個很好的工具。

如果你的HTML是這樣的:

<input type="checkbox" value="Red" [(ngModel)]="colors['red']" 
<input type="checkbox" value="Blue" [(ngModel)]="colors['blue']" 

你可以把這個控制器:

colors = {}; 

上的複選框用戶輸入後,對象的值將被更新的東西像:

colors = { 
    red: true, 
    blue: false 
}; 
+0

是否可以迭代'顏色'? – Elkin

+1

@Elkin是的,請參閱https://docs.angularjs.org/api/ng/function/angular.forEach。 – tcooc

0

這就是答案:

<input type="checkbox" value="Blue" (click)="var=$event.target.checked" />