如何禁用 Angular JS 中的选项?
How to disable option in Angular JS?
我有 ng-repeat
个选项:
<option ng-repeat="year in data.dateList.year" value="{{year.id}}" ng-disabled="(year.id < 2015) ? true : false">
可以看到ng-disabled="(year.id < 2015) ? true : false"
如果 year.id
小于 2015 年,为什么我的选项没有被禁用?
这是我的新代码:
<div class="itm" ng-repeat="a in range(num) track by $index">
<option ng-repeat="year in data.dateList.year" ng-disabled="(year.id) < formData.beginYear[$index]">
{{year.value}}
</option>
</div>
ng-disabled
仅用于 input
元素:
<INPUT
ng-disabled="expression">
...
</INPUT>
你需要在这里使用 ng-options 来禁用选项
<select ng-model="year"
ng-options="year.id disable when (year.id < 2015) for year in data.dateList.year">
</select>
更新
对于两个输入字段相互依赖,你可以像下面那样做。主要问题是当您进行比较时它是字符串,因为 value
属性将值转换为 string
格式。您可以使用 ng-options
来保留值的 dataType
并且在进行比较时会更容易。
标记
<select ng-model="yr[$index]"
ng-options="year.id as year.id for year in years">
</select>
<select ng-model="year"
ng-options="year.id disable when (year.id < yr[$index]) for year in years">
</select>
使用此代码
<option ng-repeat="year in data.dateList.year track by $index" ng-disabled="(year.id) < 2015">{{year.id}}</option>
我有 ng-repeat
个选项:
<option ng-repeat="year in data.dateList.year" value="{{year.id}}" ng-disabled="(year.id < 2015) ? true : false">
可以看到ng-disabled="(year.id < 2015) ? true : false"
如果 year.id
小于 2015 年,为什么我的选项没有被禁用?
这是我的新代码:
<div class="itm" ng-repeat="a in range(num) track by $index">
<option ng-repeat="year in data.dateList.year" ng-disabled="(year.id) < formData.beginYear[$index]">
{{year.value}}
</option>
</div>
ng-disabled
仅用于 input
元素:
<INPUT
ng-disabled="expression">
...
</INPUT>
你需要在这里使用 ng-options 来禁用选项
<select ng-model="year"
ng-options="year.id disable when (year.id < 2015) for year in data.dateList.year">
</select>
更新
对于两个输入字段相互依赖,你可以像下面那样做。主要问题是当您进行比较时它是字符串,因为 value
属性将值转换为 string
格式。您可以使用 ng-options
来保留值的 dataType
并且在进行比较时会更容易。
标记
<select ng-model="yr[$index]"
ng-options="year.id as year.id for year in years">
</select>
<select ng-model="year"
ng-options="year.id disable when (year.id < yr[$index]) for year in years">
</select>
使用此代码
<option ng-repeat="year in data.dateList.year track by $index" ng-disabled="(year.id) < 2015">{{year.id}}</option>