AngularJS выпадающий - автоматический выбор не работает

0

В контроллере

$scope.persons = [{"id": 1, "name": "Diso"}, {"id": 2, "name": "Tatalop"}];

На странице создания у меня есть эти коды.

<select name="person" ng-options="person.id as person.name for person in persons" ng-model="job.person_id">
    <option value="">Select a Person</option>
</select>

Вышеупомянутое выпадающее name отобразит name человека, и его значение будет id личности. Если я отправлю форму, я получу id человека должным образом. Это прекрасно работает.

На странице обновления я хочу использовать тот же код (тот же самый контроллер и тот же html файл). Для этого вы можете выбрать автоматический выбор. Предположим, что при выгрузке страницы необходимо автоматически выбрать второго человека. Чтобы сделать это успешным, я написал $scope.job.person_id = $scope.persons[1]; в контроллере.

Теперь проблема в том, что если я удалю person.id as из ng-options тогда работает только функция автоматического выбора, иначе она не будет работать. Теперь, если я удалю person_id as тогда я получаю весь объект ({"id": 2, "name": "Tatalop"}) в результате {"id": 2, "name": "Tatalop"}. Но я хочу только человека id.

Как это сделать? Я что-то упускаю? Может ли кто-нибудь предложить мне?

Теги:
ng-options

2 ответа

1
Лучший ответ

см. этот пример: http://jsfiddle.net/kevalbhatt18/gfbksn8L/1/

в ng- функции изменения я получает только id.

var myApp = angular.module('myApp', []);

function MainCtrl($scope) {
    $scope.persons = [{"id": 1, "name": "Diso"}, {"id": 2, "name": "Tatalop"}];
    $scope.person_id = $scope.persons[1].id;
    $scope.getValue = function(t){
    console.log(t)

    }
}

  • 0
    Мне нужен автоматический выбор функций. Когда я загружаю страницу, я должен получить Tatalop в раскрывающемся Tatalop по умолчанию. Ты меня понимаешь?
  • 0
    @ SaribanD'Cl вижу, я обновил свою скрипку
Показать ещё 1 комментарий
2

пожалуйста, проверьте эту скрипку, возможно, она поможет http://jsfiddle.net/linkolen/cuvjfept/

angular.module('myApp', []);

function TestCtrl($scope) {
    $scope.persons = [{"id": 1, "name": "Diso"}, {"id": 2, "name": "Tatalop"}];
    $scope.job = $scope.persons[1].id;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.21/angular.min.js"></script>
<div ng-app="myApp" ng-controller="TestCtrl">
    <select name="person" ng-options="person.id as person.name for person in persons" ng-model="job">
    <option value="">Select a Person</option>
</select>
    this is the selected id: {{job}}
 <div>
  • 0
    Благодарю. Я получил ответ.
  • 0
    пожалуйста

Ещё вопросы

Сообщество Overcoder
Наверх
Меню