AngularJS检测哪个输入已被更改

时间:2015-05-30 11:58:40

标签: javascript html angularjs

通过$http.get在我的AngularJS应用中检索数据并进行如下渲染:

# Angular
app.controller('MainCtrl', function ($scope, $http) {
    $scope.cart = {};

    $scope.cart.retrieve = function() {
        // make $http to retrieve data
        .success(function(results) {
            $scope.cart.contents = results
        });
    };

    $scope.cart.update = function(itemId) {
        // make $http request to update cart
    }
});

# HTML
<table ng-init="cart.retrieve()">
        <tbody>
            <tr ng-repeat="item in cart.contents">
                <td>{{ item.price }}</td>
                // item quantity input field
                <td><input type="number" name="quantity" on-change="cart.update(item.id)"
                ng-model="item.qty"></td>
                <td>{{ item.price * item.qty }}</td>
            </tr>
        </tbody>
</table>

在输入字段中更改项目数量时,传递项目ID 的功能将触发:$scope.cart.update = function(itemId) { ... }。如何为触发变更事件的此特定项目检索此新值。是否有类似this的角度我可以在函数内部使用?

1 个答案:

答案 0 :(得分:4)

您可以将项目传递到cart.update功能:

on-change="cart.update(item)"

然后使用此qty

item
$scope.cart.update = function(item) {
    // do whatever you want with
    // item.qty
}