【问题标题】:How to disable option in Angular JS?如何禁用 Angular JS 中的选项?
【发布时间】:2015-12-10 19:25:34
【问题描述】:

我有ng-repeat 选项:

<option ng-repeat="year in data.dateList.year" value="{{year.id}}" ng-disabled="(year.id < 2015) ?  true : false">

你可以看到ng-disabled="(year.id &lt; 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>

【问题讨论】:

标签: angularjs select ng-repeat ng-options angularjs-ng-options


【解决方案1】:

你需要在这里使用 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>

Demo Plunkr

【讨论】:

【解决方案2】:

ng-disabled 仅用于input 元素:

<INPUT
  ng-disabled="expression">
...
</INPUT>

Angular Docs

【讨论】:

    【解决方案3】:

    使用此代码

    &lt;option ng-repeat="year in data.dateList.year track by $index" ng-disabled="(year.id) &lt; 2015"&gt;{{year.id}}&lt;/option&gt;

    see this code

    【讨论】:

    • 更新问题是什么意思?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多