我有一个<select>
元素,它可能有一个默认的 <option>
根据条件设置 - 该条件是另一个用户先前已提交表单并创建了正在提交的对象。不过好像申请不了ng-if
到选项元素(或任何标签),我发现很难想出解决方案。
目前,我的代码如下所示:
<select
id="someId"
ng-options="(item?'Yes':'No') for item in [true, false]"
class="someClass"
ng-class="someMethodToGetDynamicClass('this')
ng-model="myObject.thisOption"
ng-disabled="valueCheckingIfThisObjectHasBeenPreviouslySubmitted">
<option ng-if="valueCheckingIfThisObjectHasBeenPreviouslySubmitted" selected>{{myObject.thisOption}}</option>
</select>
只有在valueCheckingIfThisObjectHasBeenPreviouslySubmitted
时才应设置所选选项。为 true - 这意味着其他人之前已提交过该表单,因此该值已被设置并且只应显示。
最佳答案
您可以使用过滤器,或者更简单的选择,避免 ng-options
属性 <select>
并使用 ng-repeat
上<option>
元素
我简化了您的代码以提供一个快速示例(甚至因为我看不到循环部分...您简化了它,但有些东西丢失了?或者也许只是星期五下午,我看不到它:)
<select ng-options="item for item in items" ng-model="selectedItem">
</select>
这将变成
<select ng-model="selectedItem">
<option ng-repeat="item for item in items" ng-if="item === yourConditionVariableOrElse">{{item}}<option>
</select>
我希望即使经过简化,程序也能很清楚。
关于javascript - 基于条件的选择中的 AngularJS 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36358391/