Избавление от пустого элемента в теге select

0

Поэтому у меня есть следующий код:

<select id="basicInput" ng-model="MyCtrl.value">
    <option value=""></option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

Но в консоли я нахожу это:

<select id="basicInput" ng-model="MyCtrl.value">
    <option value="? object:null ?"></option>
    <option value=""></option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

Я уже видел этот вопрос, но все ответы, которые я нашел, были связаны либо с ng-вариантами, либо с ng-repeat. Этот код не использует ни один, так почему я беру эту проблему в первую очередь? Что еще более важно, как я могу запретить моей странице загружать этот тег с помощью фантомного варианта? Связано ли это с ng-моделью?

РЕДАКТИРОВАТЬ:

Поскольку я задал этот вопрос, я добавил в свой код следующее:

<select id="basicInput" ng-model="MyCtrl.value">
    <option value="0"></option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

Я также установил Myctrl.value = 0. И все же я обнаружил, что с той же ошибкой. Идеи?

Теги:
select
angular-ngmodel

2 ответа

1

Этот вопрос уже ответил ранее. Проверьте этот URL. По их словам

Пустая опция генерируется, когда значение, на которое ссылается ng-model, не существует в наборе параметров, переданных в ng-options. Это происходит для предотвращения случайного выбора модели: AngularJS может видеть, что исходная модель либо не определена, либо нет в наборе параметров, и сама не хочет самостоятельно определять значение модели.

Вместо этого вы можете сделать это таким образом

<select id="basicInput" ng-model="MyCtrl.value">
  <option value="" ng-if="false"></option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

Короче: пустая опция означает, что не выбрана допустимая модель (по действию я имею в виду: из набора параметров). Вам нужно выбрать допустимое значение модели, чтобы избавиться от этой пустой опции

  • 0
    Хорошая идея, но я на самом деле хочу одну пустую опцию в списке опций, чтобы я мог ее очистить.
0

Вы должны инициализировать MyCtrl.value до одного из значений, предоставляемых параметрами, в противном случае Угловой будет отображать пустой выбор, потому что выбранная модель не существует в списке параметров.

в MyCtrl:

$scope.value = 1;

  • 0
    Под значениями в опции вы подразумеваете атрибут значения опции или html внутри тега опции?
  • 0
    Атрибут значения параметров. Мне кажется, что ваш MyCtrl.value находится не в [1,2,3], поэтому Angular пытается установить выбранное значение на несуществующее, что приводит к генерации пустой опции выбора.

Ещё вопросы

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