2015-05-04 84 views
1

我有一個AngularJs表單,我想知道工作的小時數。如果金額爲0,我想爲不工作的原因啓用額外的問題。如何在AngularJs中基於另一個輸入字段值啓用輸入域

<label>How many hours did you work?</label> 
<input ng-model="hours" type="number" placeholder="8" /> 

<label ng-class="{'disabled-label': ifHoursZero}">Why didn't you work at all?</label> 
<input ng-disabled="ifHoursZero" ng-model="reason" type="text" /> 

什麼是優雅的方式角度來切換CSS和輸入字段與ifHoursZero如果hours0。這可以通過hours變量直接使用某種模式完成嗎?

+0

你可以使用''''ng-show'''和'''''ng-hide''' –

回答

2

ifHoursZero一個返回boolean值的函數,並調用它像ng-disabled="ifHoursZero()"

例如:

function ifHoursZero() { 
    return $scope.hours === 0; 
} 

jsBin

3

你應該能夠做到這一點,而無需添加功能到控制器:

<label>How many hours did you work?</label> 
<input ng-model="hours" type="number" placeholder="8" /> 

<div ng-show="hours === 0"> 
    <label>Why didn't you work at all?</label> 
    <input ng-model="reason" type="text" /> 
</div> 
+0

如果ng-show隱藏它,那麼'reason'變量是否可以綁定?如果它顯示(通過輸入0),然後再次隱藏它(通過輸入> 0)呢?它是否影響其默認範圍值? – Pekka

+0

@Pekka它應該在那裏隱藏或不..(輸入0小時,鍵入內容,將小時更改爲1,原因應該仍然存在)因此,在您的控制器中,您可能需要根據您的原因。 –

相關問題