Javascript 基于条件选择中的AngularJS选项
我有一个Javascript 基于条件选择中的AngularJS选项,javascript,html,angularjs,Javascript,Html,Angularjs,我有一个元素,它可能会根据一个条件设置一个默认的,这个条件是如果其他用户以前提交了表单并创建了提交的对象。然而,我似乎无法将ng if应用于选项元素(或任何标记),我发现很难找到解决方案 目前,我的代码如下所示: <select id="someId" ng-options="(item?'Yes':'No') for item in [true, false]" class="someClass" ng-class="someMethodToGetDyna
元素,它可能会根据一个条件设置一个默认的
,这个条件是如果其他用户以前提交了表单并创建了提交的对象。然而,我似乎无法将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>
您可以使用过滤器,或者更简单的选项,避免
上的ng options
属性,而是在
元素上使用ng repeat
我简化了您的代码以提供一个快速的示例(甚至因为我看不到循环部分……您简化了代码,但有些东西丢失了?或者可能只是周五下午,我看不到:)
这将成为
<select ng-model="selectedItem">
<option ng-repeat="item for item in items" ng-if="item === yourConditionVariableOrElse">{{item}}<option>
</select>
{{item}}
我希望这个过程即使简化了也很清楚。尝试使用。
例如:
<option ng-selected="valueCheckingIfThisObjectHasBeenPreviouslySubmitted">{{myObject.thisOption}}</option>
{{myObject.thispoption}
好的,根据MarcoS的回答和Naigels建议使用ng repeat
,我想我已经这样解决了这个问题:
<select
id="someId"
class="someClass"
ng-class="someMethodToGetDynamicClass('this')
ng-model="myObject.thisOption"
ng-disabled="valueCheckingIfThisObjectHasBeenPreviouslySubmitted">
<option ng-repeat="item in [{'k':true, 'v':'Yes'}, {'k':false, 'v':'No'}] ng-selected="valueCheckingIfThisObjectHasBeenPreviouslySubmitted && item.k == myObject.thisOption" >{{item.v}}</option>
{{item.v}
现在,ng repeat
在存储要检查的我的值('k')和显示标签('v')的对象数组中重复ng selected
然后检查ValueChecking此对象是否已预先提交
是否为真,以及当前项.k
是否等于提交的值。据我所知,ng if
不能用于
标记-我弄错了吗?确实可以使用它;)我纠正了错误,ng repeat
代替了ng for
这篇文章的顶部答案可能已经过时了吗?不,它不是,它说你不能在
元素中插入html元素(或标签,这是一样的),但我在这里只使用属性:他在使用属性哦,我明白了!我错了哈哈
<select
id="someId"
class="someClass"
ng-class="someMethodToGetDynamicClass('this')
ng-model="myObject.thisOption"
ng-disabled="valueCheckingIfThisObjectHasBeenPreviouslySubmitted">
<option ng-repeat="item in [{'k':true, 'v':'Yes'}, {'k':false, 'v':'No'}] ng-selected="valueCheckingIfThisObjectHasBeenPreviouslySubmitted && item.k == myObject.thisOption" >{{item.v}}</option>