2016-04-15 83 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