2015-07-06 4 views
0

В контроллереAngularJS падение вниз - автоматический выбор не работает

$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 и его значение будет человек id. Если я отправлю форму, я получу человека id должным образом. Это прекрасно работает.

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

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

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

ответ

1

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

в нг-изменение функции я получаю только идентификатор.

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» по умолчанию. Ты меня поймаешь? –

+0

@ SaribanD'Cl вижу, я обновил свою скрипку –

+0

Теперь ее круто. Благодарю. Я нашел свою ошибку :) –

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

приветствуются –

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