angularjs 1.7 выберите раскрывающийся список показывает дополнительное значение параметра - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь перенести angularjs с 1,5 до 1,7 в моем приложении.

У меня есть данные моей модели, как показано ниже:

$scope.colors = [
  {name:'black', shade:'dark'},
  {name:'yellow', shade:'light'}
];

$scope.myColor = ''; 

HTML:

 <label>Color :
 <select ng-model="myColor"
        ng-options="color.name for color in colors">
     <option value="">-- choose color --</option>
  </select>

С $scope.myColor - пустая строка, angular отображает дополнительный <option value="?"></option> в выпадающем списке, как показано ниже.

<select ng-model="myColor" ng-options="color.name for color in colors" class="ng-pristine ng-untouched ng-valid ng-empty">
   <option value="?" selected="selected"></option>
   <option value="">--choose color --</option>
   <option label="black" value="object:3">black</option>
   <option label="yellow" value="object:4">yellow</option>
</select>

Есть ли способ избежать отображения <option value="?"></option> и установить его по умолчанию на <option value="">--choose color --</option>, когда $scope.myColor имеет пустое значение?

Это работало, как и ожидалось, с углом 1,5.

Вот плункер: https://plnkr.co/edit/g0rVjBpM2qLrGuweP19E?p=preview

edit : @FDavidov, @Houssein, @Aleksey предложил мне использовать $scope.myColor = null в приведенных ниже ответах.Спасибо за это.Но это серьезное изменение в моей кодовой базе корпоративных приложений.Я пытаюсь выяснить, есть ли другой способ добиться того же с изменением HTML.

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Vinay,

Назначение пустой строки (т. Е. '') для $scope.myColor дает ей фактическое значение.Просто удалите оператор $scope.myColor = ''; или замените '' на null.

0 голосов
/ 19 сентября 2018

Вы должны установить для $ scope.myColor значение null, а не "".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...