2015-12-04 3 views
1

Я пытаюсь передать две переменные из ngRepeat в функцию, но кажется, что я чего-то не хватает. Может кто-нибудь объяснить, что это такое?ngRepeat аргумент в функцию ngChange

<tr ng-repeat="user in users"><td> 
<select 
    ng-model="user.selection" 
    ng-options="action.id as action.name for action in userActions" 
    ng-change="actionChange(user.selection, user.id)" 
    required> 
</select></td></tr> 

$scope.actionChange = function(selection,id) { 
    $log.log(selection) // will display the selection 
    $log.log(id) // is undefined 
} 

ответ

2

Вы должны вернуть object из ng-options

<select 
    ng-model="user.selection" 
    ng-options="action as action.name for action in userActions" 
    ng-change="actionChange(user)" 
    required> 
</select> 

Вы пропустили написать имя функционировать & и добавить эту функцию в области видимости.

$scope.actionChange = function(user) { 
    $log.log(user.name) // will display the selection 
    $log.log(user.id) // is undefined 
} 

Demo Plunkr

+0

На самом деле варианты работают нормально, я не думаю, что это проблема. А что касается функции, выходящей из $ scope, это тоже не так. Просто хотел проиллюстрировать, но я установил пример. –

+0

@ LucasEngel вы можете проверить обновление? –

+0

Спасибо, Панкай! Передача всего объекта работала. Я создал плункер для дальнейшего использования: http://plnkr.co/edit/btrFFhe9q3wRwiXz4Acy –

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