Выберите опцию в ng-options Не работает с jQuery

0

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

$scope.storedDay = 'Today';

<select id="selectedDay" name="selectedDay" class="form-control" ng-model="selectedDay" ng-options="day.text for day in days"></select>

$('#selectedDay option[label="' + $scope.storedDay + '"]').prop('selected', true);

Сгенерированный HTML

<select id="selectedDay" name="selectedDay" class="form-control ng-pristine ng-untouched ng-valid" ng-model="selectedDay" ng-options="day.text for day in days" tabindex="0" aria-invalid="false">
<option value="?" selected="selected"></option>
<option value="object:35" label="Today">Today</option>
<option value="object:36" label="Tomorrow">Tomorrow</option>
<option value="object:37" label="Sunday">Sunday</option>
</select>

Он никогда не выбирается. Даже если я жестко закодирую текст ярлыка.

  • 2
    что со всеми, кто пытается использовать jquery и angular вместе? Просто используйте угловой ...
  • 0
    но почему вы хотите сделать это с помощью jQuery?
Показать ещё 1 комментарий
Теги:
ng-options

2 ответа

0
Лучший ответ

Мне просто нужно добавить track by day.text в ng-options = FAIL:}

0

Вы можете сделать это, используя угловой jqLite, итератируя варианты и сравнивая их метки, см. Следующий рабочий скрипт:

//Iterate over options
for (var i = 0; i < angular.element(document.querySelector('#selectedDay').children).length; i++) {
    if (angular.element(document.querySelector('#selectedDay').children[i]).attr('label') == $scope.storedDay) {
        //Set selected option in ng-model
        $scope.selectedDay = angular.element(document.querySelector('#selectedDay').children[i]).attr('value');
    }
}

http://jsfiddle.net/hmartos/sjsk71w8/

Ещё вопросы

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