Удалить пустую опцию из X-editable Select

Я работаю с AngularJS и X-editable последние несколько недель, и одна вещь, которая меня беспокоит, это то, что опция select предоставляет пустую опцию в качестве первого дочернего элемента.
Вот HTML

<span editable-select="curuser.roles" e-name="roles" e-ng-options="role as role.name for role in roles">
{{ showRoles() }}
</span>  

Вот выходной HTML:

<select name="roles" ng-options="role as role.name for role in roles">
   <option value="?" selected="selected"></option>
   <option value="0">Admin</option>
   <option value="1">Company</option>
   <option value="2">Manager</option>
</select>  

Что мне нужно сделать, чтобы избавиться от этой пустой опции?
Здесь работает JSFiddle


person Abhishek    schedule 18.07.2014    source источник
comment
Попробуйте включить ng-model в свой выбор и инициализировать его при загрузке: $scope.model = roles[0];   -  person AlwaysALearner    schedule 18.07.2014
comment
Поскольку я использую x-editable, я попытался добавить ng-model в тег span и инициализировать его, но у меня это не сработало.   -  person Abhishek    schedule 18.07.2014
comment
Можете ли вы показать образец в jsfiddle или plunker, что вы пробовали, но не сработали? То, как предлагает @CodeHater, должно хватить без особых усилий.   -  person dmahapatro    schedule 18.07.2014


Ответы (3)


Вы не выбрали ответ, поэтому я подумал, что отправлю скрипку, которую я получил, для работы другим, у которых есть аналогичные проблемы. Я обновил ваш editable-select и ваши e-ng-options. Вот обновленная скрипка http://jsfiddle.net/7e7kk/22/

  editable-select="roles[0].value" 
  ng-options="role.value as role.name for role in roles"
person Rethabile    schedule 01.11.2015

Это нормальное поведение. Я обновил ваш jsfiddle, чтобы добавить стандартный элемент выбора с ngOptions, и, как вы можете видеть, будет пустое значение, если не выбран один из вариантов: https://jsfiddle.net/vw4mkbou/2/

Вам нужно либо установить значение по умолчанию на 1 из доступных вариантов, либо иметь пустое состояние: http://jsfiddle.net/vw4mkbou/4/

person blemaire    schedule 01.11.2015

Измените свой код с:

e-ng-options = "role as role.name for role in roles"

to

e-ng-options="role.id as role.name for role in roles track by role.id"

И в контроллере добавьте $ scope.apply.

И, конечно же, в вашем контроллере установите для вновь добавленных строк значение по умолчанию roles[0].

Извини, если уже поздно. Я только что видел твой вопрос.

person Marwa Eldawy    schedule 02.12.2014