是否可以在配置了ngOoptions的select标签内使用ngPluralize来复制下拉列表的选项?
我目前有以下控制器
function Ctrl ($scope) {
$scope.ranges = [1, 2, 3, 4, 5];
$scope.range = $scope.ranges[4];
$scope.$watch('range', function(val) {
console.log('change' + val);
});
};
以及以下标记
<div ng-controller="LiveViewerCtrl">
<select ng-model="range"
ng-options="range for range in ranges"
ng-pluralize
count="range"
when="{'1': '1 Minute', 'other': '{} Minutes'}">
</select>
</div>
我也尝试使用ng-repeat自己创建选项,并且运行正常。不幸的是,下拉列表有一个空的默认值,虽然我在控制器中指定了默认值,但未预先选择。如果我使用ngOptions方法预选工作,但值不是多元化的。
答案 0 :(得分:9)
正如Dmitry所述,ngPluralize
不能与ngOptions
一起使用,但没有什么能阻止您将其与ngRepeat
一起使用:
HTML:
<body ng-controller="AppController">
<select ng-model="selectedRange">
<option value="">Select number ...</option>
<option
ng-repeat="range in ranges"
ng-pluralize
count="range"
when="{1: '{{range}} minute', other: '{{range}} minutes'}"
>{{range}}</option>
</select>
</body>
JS:
app.controller('AppController',
[
'$scope',
function($scope) {
$scope.ranges = [1, 2, 3, 4, 5];
$scope.selectedRange = $scope.ranges[4];
}
]
);
顺便说一下,关于你的“预选”问题,请注意JavaScript数组是zero-indexed。