将'select'元素大小绑定到数组长度

时间:2017-07-20 19:31:36

标签: html angularjs

我有一个选择元素,其中包含20-50个名称。目前,显示的元素数量为3,并且有一个滚动条允许用户上下滚动以进行所需的选择。有没有办法可以将数组的长度绑定到size属性以及包含if语句?例如,如果我的名称少于25个,则将选择框的大小设置为10,否则将选择框的大小设置为20.

<select size="3" multiple="multiple" id="selectMultiple" style="margin: 5px 0px; width:50%">
     <option ng-repeat="value in scope.Names">{{value.Name}}</option>
</select>

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:2)

您可以在{{}}属性中使用size插值指令,或者更好的方法是使用ng-attr-size指令创建size属性及其值。

ng-attr-size="{{getSize(Names)}}" 

我猜scope.Names应为Names

function getSize(collection){
   return collection && (Names.length > 25? 20: 10);
}

答案 1 :(得分:2)

您可以使用插值运算符

<select size="{{size}}" multiple="multiple" id="selectMultiple" style="margin: 5px 0px; width:50%">
     <option ng-repeat="value in scope.Names">{{value.Name}}</option>
</select>
控制器中的

$scope.size=($scope.Names.length>25?20:10);

您还可以使用{/ 1}}属性

ng-size