使用数据发送angularjs中的ajax请求

时间:2015-11-20 12:05:49

标签: javascript jquery angularjs ajax

我的表格如下。在这里,我获取了每个元素的值,并通过ajax调用将其发送到服务器。他们是否有任何简单的方法使用表单中的所有值向服务器发送请求?我是新手,请帮忙。我的表单有很多元素很难取得所有元素的价值,是他们的替代方法吗?

<div ng-app="Myapp">
    <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-route.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-messages.js"></script>
    <script>
        var Myapp = angular.module('Myapp', ["ngRoute"]);
    </script>

    <div ng-controller="orderFormController">
        Item1<input type="text" name="item1"  ng-model='item1'><p></p>
        Item2 <input type="text" name="item2"  ng-model='item2'><p></p>
        Item3 <input type="text" name="item3"  ng-model='item3'><p></p>
         Item4 <input type="text" name="item4"  ng-model='item4'><p></p>
        Item5 <input type="text" name="item5"  ng-model='item5'><p></p>
        <button type="button"  ng-click='saveAll()' >SAVE ORDER</button>
    </div>    
    <script>
        Myapp.controller('orderFormController', ['$scope', '$http', function ($scope, $http) {

                 var data = {};
                $scope.saveAll = function () {
                    data = {'item1': $scope.item1,'item2': $scope.item2,'item3': $scope.item3,'item4': $scope.item4}
                    $http.post("order/save/", data
                        ).success(function (res, status, headers, config) {
                    if (res == 'success')
                    {
                        $scope.message = res;
                    }
                    else
                    {
                        $scope.message = res;
                    }
                }).error(function (res, status) { 
                    $scope.message = res;
                });
                }

            }]);

    </script>               

2 个答案:

答案 0 :(得分:2)

在范围上放置父对象并将属性连接到该范围。然后父对象就是您发送的内容。

<div ng-app="Myapp">
    <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-route.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-messages.js"></script>
    <script>
        var Myapp = angular.module('Myapp', ["ngRoute"]);
    </script>

    <div ng-controller="orderFormController">
        Item1<input type="text" name="item1"  ng-model='data.item1'><p></p>
        Item2 <input type="text" name="item2"  ng-model='data.item2'><p></p>
        Item3 <input type="text" name="item3"  ng-model='data.item3'><p></p>
         Item4 <input type="text" name="item4"  ng-model='data.item4'><p></p>
        Item5 <input type="text" name="item5"  ng-model='data.item5'><p></p>
        <button type="button"  ng-click='saveAll()' >SAVE ORDER</button>
    </div>    
    <script>
        Myapp.controller('orderFormController', ['$scope', '$http', function ($scope, $http) {

                 var data = {};
                $scope.data = data;
                $scope.saveAll = function () {
                    $http.post("order/save/", data
                        ).success(function (res, status, headers, config) {
                    if (res == 'success')
                    {
                        $scope.message = res;
                    }
                    else
                    {
                        $scope.message = res;
                    }
                }).error(function (res, status) { 
                    $scope.message = res;
                });
                }

答案 1 :(得分:1)

正确的方法是使用$resource(用于REST)将模型发送到服务器

<div ng-controller="orderFormController">
    Item1
    <input type="text" name="item1" ng-model='item.item1'><p></p>
    Item2 
    <input type="text" name="item2" ng-model='item.item2'><p></p>
    Item3 
    <input type="text" name="item3" ng-model='item.item3'><p></p>
    Item4 
    <input type="text" name="item4" ng-model='item.item4'><p></p>
    Item5 
    <input type="text" name="item5" ng-model='item.item5'><p></p>

    <button type="button"  ng-click='saveAll()' >SAVE ORDER</button>
</div>  

$scope.item.$save(function(data) {

});

$item是一个angularjs资源