2016-04-15 43 views
0

我试图从表单中发布值。表单有两个字段 - 名称和电子邮件。我也设置了控制器,但是当我尝试发布时,显示错误。

<form name="save" ng-submit="sap.saved(save.$valid)" novalidate> 

     <div class="form-group" > 
      <input type="text" name="name" id="name" ng-model="sap.name" /> 
     </div> 

     <div class="form-group" > 
      <input type="email" name="email" id="email" ng-model="sap.email" /> 
     </div> 

     <div class="form-actions"> 
      <button type="submit" ng-disabled="save.$invalid || sap.dataLoading">Save</button> 
     </div> 
</form> 

我的控制器:

(function() { 

    angular 
     .module('myApp.saved', []) 

     .controller('dataController', function($scope, $http) { 
      var sap = this; 

      $scope.post = {}; 
      $scope.post.login = []; 
      $scope.sap = {}; 
      $scope.index = ''; 

      var url = 'save.php'; 

      sap.saved = function(isValid) 
      { 
       if (isValid) 
       { 
        $http({ 
         method: 'post', 
         url: url, 
         data: $.param({'user' : $scope.sap }), 
         headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
        }) 
        .then(function(response) 
        { 
          // success 
          alert('success'); 
        }, 
        function(response) 
        { 
         // failed 
         alert('failed'); 
        }); 
       } 
      }; 

     }); 

})(); 

当我提交,$没有定义所示。我非常新的角度。任何人都可以说出我犯的所有错误吗?

+1

'sap.saved'而不是这个使用'$ scope.saved' – uzaif

+1

@uzaif如果他使用'ng-controller =“dataController作为sap”'我认为这是有效的 – kiro112

+0

当您使用'$ .param '你期望'$'是什么? –

回答

2

data: $.param({'user' : $scope.sap }),

应该

data: { 
    'user': $scope.sap //POST parameters 
} 

data – {string|Object} – The response body transformed with the transform functions

4

$是别名jQueryparamjquery method

您是否包含jQuery

+0

号我从任何地方删除jquery。 @Marco – Annabelle

+0

然后你可以避免使用'$ .param',angular会小心的转换对象 – Marco