如果在AngularJS中满足条件,则选择选择选项菜单

时间:2014-04-26 19:39:10

标签: angularjs

<select ng-model="item.value" ng-options="item.name for item in items">
</select>

以上将填充AngularJS中的选择选项,但如果满足条件,如何添加selected

我想做这样的事情:

<select ng-model="item.value" ng-options="item.name for item in items" if="item.name == someValueToCheckAgainst" selected endif>
</select>

显然以上是错误的,但我试图搜索这个以确定是否可以这样做。

这是项目

var items = [ 'a', 'b', 'c' ];
var someValueToCheckAgainst = 'b';

所以我的菜单应该是这样的

<select ng-model="item.value">
  <option value="a">a</option>
  <option value="b" selected>a</option>
  <option value="c">a</option>
</select>

4 个答案:

答案 0 :(得分:14)

刚想出来

<select ng-model="form.model">
  <option ng-selected="{{item == valueToCheckAgainst}}"
          ng-repeat="item in items"
          value="{{item}}">
          {{item}}
  </option>
</select>

答案 1 :(得分:3)

对我来说,这句话毫无意义。

<select ng-model="item.value" ng-options="item.name for item in items"> </select>

ng-model是当前值(绑定模型)。如果你的项目是&#39;看起来像'{value,name}&#39;比你应该定义你的选择&#39;如

<select ng-model="someValueToCheckAgainst" ng-options="item.value as item.name for item in items"> </select>

答案 2 :(得分:1)

所选选项由ng-model属性的值定义。有关详细信息,请查看官方文档https://docs.angularjs.org/api/ng/directive/select

答案 3 :(得分:1)

我建议对选择框使用 ng-option指令而不是ng-repeat,beacuse ng-option是专门为选择框创建的,并以最佳方式处理选项。我们如何设置在ng-option指令中选择的默认或条件选项值是使用 ng-init 指令,如下所示:

<select ng-model="item.value" 
        ng-options="item.name for item in items" 
        ng-init="condition ? item.value = items[opt index] : item.value = items[0]">
</select>