ng-модель <select> в пользовательской директиве не сохраняется в IE, работает в Chrome и Firefox

0
<form>
        <div ng-if="record.title" class="customClasses" ng-repeat="record in $.basevm.recordsperPage">
            <manycustomDirective data-record="record"></manycustomDirective>
        </div>
</form>

Несколько записей загружаются с использованием вышеприведенной директивы и есть несколько страниц.

У этого manycustomDirective.cshtml снова есть еще одна настраиваемая директива, как показано ниже, которая показывает выпадающие списки, используя "select"

<single-choice ng-if="record.type == 1" data-record="record" ></single-choice>
<multi-choice ng-if="record.type == 2" data-record="record" ></multi-choice>

В файле директивы cshtml с одним выбором я могу выбрать + опции

 <select class="customclassdeginedinLESS" ng-model="record.id" >
             <option value=""></option>
             <option value="{{choice.id}}" ng-repeat="choice in   record.choices">{{ choice.text }}</option>
         </select>

Проблема

Для IE сохраняется только одно значение из всех страниц и настраиваемых директив, но в хроме и FF все сохраняется.

Я пробовал использовать трек по выбору.id и отслеживать по индексу $ index, но он не работал. Пытаясь написать прослушиватель на ng-изменении выбора внутри функции "ссылка" директивы CUSTOM, я назначил hardcoded значение scope.ngModel, но все равно оно не работает.

     link(scope: any, element: any, attrs: ng.IAttributes) {

           scope.ngchangeListener= function (item) {

             scope.ngModel = '00000000';

          }
  • 0
    Можете ли вы предоставить код для manycustomDirective? Ваш вопрос о проблеме с <select>, но недостаточно информации, чтобы предоставить вам ответ
  • 0
    @elliot-j elliot-j, я редактировал мой вопрос выше
Теги:
angularjs-directive
angularjs-ng-repeat

2 ответа

0

Основываясь на вашем вопросе, я предполагаю, что вы хотите следующее поведение: Отобразите <select> где каждый record.type равен 1, который позволит пользователю обновить идентификатор для этой записи на record.choices доступных для нее record.choices.

Пожалуйста, проверьте следующий плункер, чтобы узнать, разрешает ли он вашу проблему. При запуске в IE 11 (только версия, к которой у меня есть доступ) модификация <select> обновит record.id для соответствующего элемента

plunker

Я попытался упростить эту проблему, удалив ссылки на ваши пользовательские директивы и избавив их от использования ng-repeat <option>'s для использования ng-options

Предполагаемая версия угловой: 1.4.12

0

Согласно документу angularJs, есть некоторые правила, о которых вам следует знать при использовании IE.

Для получения дополнительной информации см. Https://docs.angularjs.org/guide/ie

  • 0
    предоставленная ссылка не дает никаких рекомендаций относительно проблем с ng-select в IE
  • 0
    Ну, если вы можете предоставить ссылку Jsfiddle, то я могу помочь в отладке.

Ещё вопросы

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