Как отключить пустую опцию в выборе AngularJS? - PullRequest
0 голосов
/ 28 апреля 2018

Я знаю, что этот вопрос задавался ранее, но ни один из ответов не помог с моим требованием.

У меня есть кусок кода

<select ng-change ="loadHomePage()" ng-model="selectedPage" ng-options="x for x in pages"></select>

И мой javascript выглядит примерно так:

for (var i = 1; i<=response.data.pages; i++)
{
    $scope.pages.push(i);
}

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

<option value="" hidden>

Но моя ng-модель такова, что после того, как я выбрал опцию, значение сбрасывается на пустое значение по умолчанию, т.е. на ноль.

Я хочу воспользоваться выбранной опцией и оставить для ng-model это значение. Так что это ничего не меняет для меня.

Я подумал, что мог бы ввести здесь другую переменную, которая могла бы хранить значение selectedPage, поэтому не имеет значения, будет ли изменено значение выбранной страницы, но было бы здорово, если бы кто-то мог сказать мне, есть ли прямая способ.

1 Ответ

0 голосов
/ 28 апреля 2018

Прежде всего хочу сказать, что попробуйте использовать angular.forEach и избегать петли for. Также не поймите вашу логику $scope.pages.push(i);, значит толкаете индекс?.
Пожалуйста, замените ответ ниже и дайте мне знать, если это не то, что вы хотите.

angular.forEach(response.data.pages, function(value, key) {
  if(value != ''){
      $scope.pages.push(value);
  }
}, $scope);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...