2014-10-16 2 views
0

я следующее:Угловое - Выбрать и ngOptions - ключ для значения Определить добавлены модели

<select class="input-lg form-control" ng-model="selections[$index]" name="potsel" ng-options="selection.sel._id as selection.sel.name for selection in pot.selections" required ng-disabled="clicked"> 

У меня 4 выпадающие создается, и это возвращает мне $ объем следующим образом (по представить):

$scope.selections = ["id1", "id2", "id3", "id4"] 

в идеале, я хотел бы его выглядеть следующим образом:

$scope.selections = [{"dropdown1":"id1"},{"dropdown2":"id2"},{"dropdown3":"id3"},{"dropdown4":"id4"}] 

Обратите внимание, что "выпадающий #" может быть получен в HTML б y используя «pot._id».

Некоторое время смотрел на это, и я не вижу нигде в ngOptions, чтобы определить это. Любая помощь, пожалуйста?

спасибо.

ответ

1

в то время как вы можете сделать это прямо в HTML, безусловно, вы можете сделать это в JS

 ng-change="selectionObj[$index] = {} ; selectionObj[$index][pot._id] = selections[$index]" 

или вы можете создать функцию, которая будет делать выше нг-изменений = AddObject ($ индексного горшка. _id, выбор [$ индекс])

 $scope.addObject = function(index, key, value) { 
     $scope.selectionObj[$index] = { key : value }; 
    } 

EDIT

извините, замените $ индекс с индексом.

  var obj = {}; 
     obj[key] = value; 
     $scope.selectionObj[index] = obj; 
     console.log(key, value); 
+0

Извините за поздний ответ. Я вижу постоянную ошибку, индекс $ undefined, когда я пытаюсь это сделать. – Gary

+0

Игнорировать выше комментарий, я заменил '$ scope.selectionObj [$ index]' на '$ scope.selectionObj [index]'. Проблема в том, что объект добавляется, но он использует слово «ключ» вместо значения ... например. '$ scope.selectionObj = [{key:" id1 "}]'. – Gary

+0

проверить EDIT, а также проверить журналы консоли ... – harishr