2016-03-04 2 views
2

https://plnkr.co/edit/lvxHUKXI9tuToSNsD3Hg?p=previewугловой 1.x выпадающий нг-параметры нагрузки от значения

Вот мой plunker, у меня есть HTML как этот

<select ng-model="dropdown" ng-options="option.description for option in list" ng-change="hmm()"></select> 

Тогда мой источник данных выглядит следующим образом

$scope.list = {"description":"jhello","value":4},"description":"bello","value":5}]; 
$scope.dropdown = 5; 

У меня есть ng-model="dropdown"

Что я хочу сделать, так это иметь значение выбранной модели. Поэтому, если я установил dropdown = 5, тогда будет выбран $scope.list[1]. Я знаю, что я просто могу просто вызвать индекс $scope.dropdown = $scope.list[1] и т. Д. Однако это требует дополнительного сопоставления, когда я извлекаю данные из базы данных для редактирования, чтобы сопоставить эту опцию. Затем дополнительное сопоставление только сохраняет значение 5 в базе данных, когда я пытаюсь сохранить (IE valueToSave = $ scope.dropdown.value). Было бы неплохо, если бы моя модель или значение могли автоматически настроить правильный вариант и автоматически быть готовы к сохранению. Когда у вас 30 или около того выпадающих меню, и кто-то нажимает на редактирование дополнительного сопоставления, чтобы установить выпадающие списки и сохранить снова, это действительно сложение. Как установить опцию выпадающего списка с помощью $scope.dropdown = 5, а также внести изменения в раскрывающееся обновление $scope.dropdown до правильного значения, чтобы он был готов к сохранению?

ответ

1

Просто обновите нг-параметры следующим образом ng-options="option.value as option.description for option in list"

Подобно этому

<select class="dropdown-list form-control" name="UnitsOfLengthDefault" ng-model="dropdown" ng-options="option.value as option.description for option in list" ng-change="hmm()"></select> 
0

Я думаю, что отображение является лучшим способом.

С помощью этой функции вы можете легко найти и присвоить правильное значение.

function findIndexInData(data, property, value) { 
    var result = -1; 
    data.some(function (item, i) { 
    if (item[property] === value) { 
     result = i; 
     return true; 
    } 
    }); 
    return result; 
} 

Таким образом, вы можете использовать это:

$scope.list[ findIndexInData($scope.list, 'value', 5) ]; 

See the plunker

Смежные вопросы