Мне нужно удалить этот пустой или установить значение по умолчанию, потому что, когда я отправляю форму в 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');
}
}
);
}]);
Я сделал второе - установил значение по умолчанию, что было лучшим способом для меня, но пробел все еще существует. Код такой же, как и в начале. Я только добавил, чтобы выбрать этот код:
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>