Угловые ng-опции удаляют пустые или устанавливают опцию по умолчанию в специальных настройках выбора

0

Мне нужно удалить этот пустой или установить значение по умолчанию, потому что, когда я отправляю форму в API, у меня нет всех элементов в массиве, но мне это нужно, потому что не выбраны, они не передаются json.

Здесь я нахожу ответ, но вот простой пример. У меня более сложный выбор, и я не знаю, как это сделать. Мой выбор находится в таблице, где 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, но он не работает. У меня есть ошибки, что индекс $ undefined. Я сделал что-то вроде этого:

<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>

И в котроллере:

$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
Лучший ответ

Я сделал второе - установил значение по умолчанию, что было лучшим способом для меня, но пробел все еще существует. Код такой же, как и в начале. Я только добавил, чтобы выбрать этот код:

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> 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню