我有一个选择元素,其中包含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>
任何帮助都会很棒!
答案 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