如何将默认角度选择选项设置为最后一个选项?

Kin*_*rog 5 angularjs

我有以下代码.我正在尝试将默认选项设置为选择框中的最后一个选项.如果我在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)

sdg*_*uck 5

使用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)


Kin*_*rog 1

我可以通过在选项属性中使用 ng-selected 来实现此目的。

ng-selected="{{$index==myData.length-1}}" 
Run Code Online (Sandbox Code Playgroud)