2014-10-19 1 views
0

Я очень новичок в Angularjs, я связал имена столбцов (ключи от пары значений ключа) в списке выбора и хочу получить имя ключа при изменении выбора выбора. Выберите список показывает:Как получить выбранное значение из раскрывающегося списка, если выпадающее меню связано с ключами json

имя, возраст и фрагмент

И изменения выбора я хочу выбранный текст выбора. Пожалуйста, помогите Вот мой код:

<!DOCTYPE html> 

<div ng-controller="HelloController"> 

    <h2>Hello {{helloTo.title}} !</h2> 
    <select ng-options="key for (key,val) in phones[0]" ng-change="ChangeValue(key)" ng-model="phones"></select> 
</div> 


<script> 
    angular.module("myapp", []) 
     .controller("HelloController", function ($scope) { 
      $scope.helloTo = {}; 
      $scope.helloTo.title = "World, AngularJS"; 
      $scope.phones = [ 
       { 
        'name': 'Nexus S', 
        'snippet': 'Fast just got faster with Nexus S.', 
        'age': 1 
       }, 
       { 
        'name': 'Motorola XOOM™ with Wi-Fi', 
        'snippet': 'The Next, Next Generation tablet.', 
        'age': 2 
       }, 
       { 
        'name': 'MOTOROLA XOOM™', 
        'snippet': 'The Next, Next Generation tablet.', 
        'age': 3 
       } 
      ]; 
      $scope.ChangeValue = function (selectedval) { 

       alert(selectedval.name); 
      }; 
     }); 
</script> 

+0

Я не очень эксперт с угловой, но если вы консоль selectedVal, что он выводит? – ProllyGeek

+0

Он возвращает undefined как значение – Gkhanna

+0

и работает ли предупреждение, я имею в виду, что метод ChangeValue срабатывает? – ProllyGeek

ответ

1
<select ng-options="key as key for (key,value) in phones[0]" ng-change="ChangeValue()" ng-model="selectedVal"></select> 

И контроллер:

angular.module("myapp", []) 
     .controller("HelloController", function ($scope) { 
$scope.helloTo = {}; 
    $scope.helloTo.title = "World, AngularJS"; 
    $scope.selectedVal = ''; 
    $scope.phones = [{ 
    'name': 'Nexus S', 
    'snippet': 'Fast just got faster with Nexus S.', 
    'age': 1 
    }, { 
    'name': 'Motorola XOOM™ with Wi-Fi', 
    'snippet': 'The Next, Next Generation tablet.', 
    'age': 2 
    }, { 
    'name': 'MOTOROLA XOOM™', 
    'snippet': 'The Next, Next Generation tablet.', 
    'age': 3 
    }]; 
    $scope.ChangeValue = function() { 

    console.log($scope.selectedVal); 
    }; 
}); 

Это прямо в documentation на самом деле ...

Вот plunker.

+0

Фактически мое раскрывающееся меню показывает имя столбца, а не значение типа «имя, фрагмент и возраст» и один раз я нажимаю на любой элемент, я хочу, чтобы это имя столбца не было именем/фрагментом/возрастом телефона. поэтому, пожалуйста, обновите свой ответ – Gkhanna

+0

Проверьте мои изменения. Это то, чего ты хочешь, или я неправильно понял? –

+0

Частично правильно, как только я выбираю «имя», он записывает «Nexus S», где я хочу «имя». Не могли бы вы обновить. – Gkhanna

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