Я пытаюсь работать с объектом, который я получаю через вызов $ http и используя для заполнения раскрывающихся списков.AngularJS ng-options, работающий с парами значений ключей в <select>
Мой объект выглядит следующим образом:
{1: Item1
↵L", 2: "Item2
↵", 3: "Item3
↵"}
В мой контроллер:
$scope.data = {};
$http.get(baseUrl + "/Lookup/Get?param=Ref_myModel").success(function (result) {
$scope.data.myModel = result
})
.error(function (error) {
$scope.data.error = error;
});
Наконец, в HTML:
<select class="form-control" id="MonStatus" ng-model="data.myModel" ng-options="key as value for (key , value) in data.myModel"></select>
Выбор: выпадающий заполняется значениями из модель без проблем, но как только пользователь выбирает значение, значение заменяется ключом. Я читал документацию, пытаясь понять ng-options, однако у меня возникают некоторые проблемы, так как все примеры используют объекты с соответствующими ключевыми форматами, в то время как у меня есть ключ и текст.
Это работает и имеет прекрасный смысл, не связывая заполненную модель. Однако используемая модель теперь пуста. Итак, когда мы используем населенную модель? Как и в примере, здесь mycolors имеет значение: https://docs.angularjs.org/api/ng/directive/select. Кроме того, я планирую перевести http-вызовы с контроллера на фабрики и рефакторинг, чтобы использовать свойство разрешения в маршрутизаторе-маршрутизаторе после того, как я получу все настроенные вызовы. – user2466657
вы бы предварительно заполнили модель, если хотите, чтобы ваша форма загружалась предварительно заполненной ... так что в вашем обратном вызове успеха (кстати, еще один совет, я считаю, что '.success' и' .error' устарели в пользу '.then'), вы можете назначить' $ scope.data.myModel = $ scope.data.options [1] ', если вы хотите, чтобы модель была настроена на 2-й элемент. – gonzofish