每次选择更改时,Angularjs都会调用控制器方法

时间:2013-12-25 02:37:45

标签: angularjs

有关angularjs的基本问题。我有两个模型:预订和桌子。我显示了一个预订列表,然后当用户选择该表进行预订时,我想更新表模型以包含预订。

<tr ng-repeat="reservation in reservations">
<td><select ng-model="selectedTable" ng-options="table.name for table in tables">
</td>

基本上我需要的是,无论何时选择一个表,我都需要在控制器上的方法中访问预留和表。

指向链接到控制器方法的指令是正确的方法吗?我不知道如何传递变量。

由于

编辑:

<tr ng-repeat="reservation in reservations">
<td><select ng-model="reservation.selectedTable" ng-options="table.name for table in   tables">
 </td>

我试过这样做。但由于table是一个对象而不是一个属性,子范围仍然创建属性而不是对父属性的引用。我也尝试添加“as table.name”但它没有用。

<tr ng-repeat="reservation in reservations">
<td><select ng-model="reservation.selectedTable" ng-options="table.name as table.name for table in   tables">
 </td>

1 个答案:

答案 0 :(得分:2)

看着你的HTML,我可以建议你在ng-change下拉菜单上使用select

<select ng-model="selectedTable" ng-options="table.name for table in tables" ng-change="tableSelected(reservation,selectedTable)">

在控制器上,您可以使用

之类的方法
$scope.tableSelected=function((reservation,selectedTable) {

}

请记住ng-repeat创建新范围。此外,每个ng-repeat范围都会设置selectedTable