У меня есть два меню выбора, которые заполняются данными AJAX JSON, полученными после загрузки страницы. Они связаны их собственной моделью и выглядят так;Установить значение ng-options на основе значения строки AJAX
<select name="category"
id="category"
ng-model="category"
ng-options="category as category.name for category in categories track by category.name">
<option value=''>Select category</option>
</select>
<select name="product"
id="product"
ng-disabled="!category"
ng-model="product"
ng-options="product for product in category.products">
<option value=''>Select product</option>
</select>
После того, как форма отправлена в API, он возвращает объект origin
, состоящий из обоих category
и product
строк, если они используются.
Я подумал, что я должен был бы установить $scope.category
и/или $scope.product
на возвращаемые данные origin
для предварительного выбора элемента в меню/s выбора;
.success(function(data)) {
...
$scope.category = data.origin.category
...
}
Но это не работает ...
Спасибо Нагавееру. Может быть, я не был достаточно ясен - категории заполняются одним и тем же вызовом AJAX, поэтому init для проверки по категориям будет терпеть неудачу, потому что они еще не существуют. Кроме того, я не хочу устанавливать значение по умолчанию, но соответствует определенному элементу на основе строкового значения – Alex
@Alex Я обновил свой ответ. Надеюсь это поможет!! –
Я думаю, что мы приближаемся, но есть пара вопросов. Во-первых, ng-init не будет работать, потому что набор данных, который создает категории, также требуется после загрузки pagte через AJAX. Поэтому я получаю ошибку «Не могу прочитать свойство» с нулевой ошибкой. Это имеет смысл, поскольку категории не заполняются в init. Кроме того, моя IDE по какой-то причине не любит операторов «e => e.name» ?! Еще раз спасибо – Alex