我有以下代码.我正在尝试将默认选项设置为选择框中的最后一个选项.如果我在ng-init中对其长度进行硬编码就可以了. ng-init="mySelect = 3"但不是ng-init="mySelect = myData.length-1"
有任何想法如何将其设置为最后一个选项?
$scope.myData = ['a','b','c'];
<select class="form-control" ng-init="mySelect = myData.length-1" ng-model="mySelect">
<option ng-repeat="$index in myData" value="{{ $index }}" >Select This Option #({{ $index+1 }})</option>
</select>
Run Code Online (Sandbox Code Playgroud)
使用ng-selected和$index计数器我们可以ng-selected="true"通过检查$index等于myData数组的最后一个索引(myData.length - 1)来有条件地设置最后一个选项.例如:
<option ng-selected="{{$index === myData.length - 1}}"></option>
Run Code Online (Sandbox Code Playgroud)
或者正如@ wickY26指出的那样,我们也可以使用$last:
<option ng-selected="$last"></option>
Run Code Online (Sandbox Code Playgroud)
但是,您应该查看ng-options指令,该指令是ng-repeat行为的特定实现,但是对于<select>元素:
<select
class="form-control"
ng-init="mySelect = myData[myData.length - 1]"
ng-model="mySelect"
ng-options="data for data in myData">
</select>
Run Code Online (Sandbox Code Playgroud)
我可以通过在选项属性中使用 ng-selected 来实现此目的。
ng-selected="{{$index==myData.length-1}}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3502 次 |
| 最近记录: |