Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于条件选择中的AngularJS选项_Javascript_Html_Angularjs - Fatal编程技术网

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>