Angular ng-options在特殊选择设置中删除空白或设置默认选项

时间:2015-12-01 22:55:38

标签: html angularjs

我需要删除此空白或设置默认值,因为当我将表单发布到API时,我没有数组中的所有元素,但我需要它,因为没有选择选择,它们不会传递给json。

here我找到答案,但这是一个简单的例子。 我有更复杂的选择,我不知道如何重拍这个。 我的选择在表中,其中td是动态生成的,如下所示:

<tr ng-repeat="articleItem in articleColors">
    <td><button class="btn btn-default"><i class="fa fa-plus"></i></button></td>
    <td>{{ articleItem.nazwa_art }}</td>
    <td>{{ articleItem.kolory_pod }}{{ articleItem.pantony }}</td>
    <td ng-repeat="m in [] | rangeFilter:0:pyNumber">  
        <select id="articleColorsData" name="py{{$index+1}}" class="form-control" ng-model="articleColorsData.kolory[$index]">
            <option value="x" selected>x</option>
            <option ng-repeat="oneColor in articleItem.all_colors" ng-selected="" value="{{ oneColor }}">{{ oneColor }}</option>
        </select>  
    </td>                                          
</tr>

我正在尝试使用ng-option进行选择,但它无效。我有错误,$ index未定义。 我做了类似的事情:

<select id="articleColorsData" name="py{{$index+1}}" 
ng-model="articleColorsData.kolory[$index]" 
ng-options="oneColor.value as oneColor.name for oneColor in articleItem.all_colors"></select>

在cotroller:

$scope.articleColorsData.kolory[$index] = $scope.articleItem.all_colors[0].value;

所有代码形成控制器:

appPokayoke.controller('CreateArticleColorsCtr', ['$scope', '$http','$routeParams', 'articles', '$location', 'articlesOfDrawings', function ($scope, $http, $routeParams, articles, $location, articlesOfDrawings, rangeFilter ) {


        var drawingId = $routeParams.drawingId;
        var pyNumber = $routeParams.pyNumber;
        var articleName = $routeParams.articleName;



        $scope.pyNumber = $routeParams.pyNumber;

        $scope.articleColors = {};
        $scope.articleColorsData = {
        "id_rys" : drawingId, 
        "ile_py" : pyNumber, 
        "nazwa_art" : articleName
        };

        $scope.articleColorsData.kolory[$index] = $scope.articleItem.all_colors[0].value;

        articles.getNewArticle(
            $routeParams.articleName, 
            $routeParams.drawingId,
            function (data) {
                if(data !== '') {
                    $scope.articleColors = data;

                }
                else {
                    console.log('not ok articleColors');  
                }
            }
        );  
    }]);

1 个答案:

答案 0 :(得分:0)

我做了第二件事 - 设置默认值,这对我来说更好,但空白仍然存在。 代码与我在开始时的代码相同。 我只是添加了选择此代码:

ng-init="articleColorsData.kolory[$index] = 'x'"

我的完整代码:

<td ng-repeat="m in [] | rangeFilter:0:pyNumber">  
    <select id="articleColorsData" name="py{{$index+1}}" class="form-control" ng-model="articleColorsData.kolory[$index]" ng-init="articleColorsData.kolory[$index] = 'x'">
        <option ng-repeat="oneColor in articleItem.all_colors" ng-value="x"  value="{{ oneColor }}">{{ oneColor }}</option>
    </select>  
</td>