1

我有一个过滤器

angular.module(Bt.config.site.ng_app_name)
    .filter('range', function () {
        return function (input, min, max, padding){
            min = parseInt(min);
            max = parseInt(max);
            padding = padding ? padding : false;
            for (var i=min; i<=max; i++){
                input.push(padding ? ("00" + i).slice (-2) : i + '');
            }
            return input;
        };
    });

一个选择

<select ng-options="n for n in [] | range:1:31:true" name="day" value="{{contestant.day}}" ng-model="contestant.day">
    <option value="">DD</option>
</select>

输出是

<select ng-model="contestant.day" value="" name="day" ng-options="n for n in [] | range:1:31:true" class="ng-pristine ng-valid">
    <option value="" class="">DD</option>
    <option value="0">01</option>
    <option value="1">02</option>
    <option value="2">03</option>
    // and so on
</select>

它应该是

<select ng-model="contestant.day" value="" name="day" ng-options="n for n in [] | range:1:31:true" class="ng-pristine ng-valid">
    <option value="" class="">DD</option>
    <option value="01">01</option>
    <option value="02">02</option>
    <option value="03">03</option>
    // and so on
</select>

提前致谢。

4

1 回答 1

3

角度生成的选项可能没有您预期的选项值。

当源是数组时,当源是对象时,值将是索引和键名。

但这不应该是一个问题,因为每当用户切换选项时,angular 会在源内的索引位置查找并将该值分配给模型:

因此,在您的情况下,如果用户选择01,contestant.day仍然会持有01而不仅仅是1.

于 2013-09-30T08:28:28.550 回答