2016-04-15 8 views
0

Ich versuche, Werte aus einem Formular zu buchen. Das Formular enthält zwei Felder: Name und E-Mail. Ich habe den Controller auch eingerichtet, aber wenn ich versuche zu posten, wird Fehler angezeigt.

<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> 

Mein Controller ist:

(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'); 
        }); 
       } 
      }; 

     }); 

})(); 

Wenn ich einreichen, wird $ nicht definiert angezeigt wird. Ich bin ziemlich neu in eckigen. Kann mir jemand sagen, was für Fehler ich gemacht habe?

+1

'sap.saved' verwenden Sie stattdessen' $ scope.saved' – uzaif

+1

@uzaif, wenn er 'ng-controller = "dataController als sap" verwendet '' ich denke, das ist – kiro112

+0

gültig, wenn Sie '$ .param verwenden 'Was erwartest du' $ 'zu sein? –

Antwort

2

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

sollte

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

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

4

$ alias ist für jQuery und param ein jquery method ist.

Haben Sie jQuery aufgenommen?

+0

Nein. Ich entfernte jquery von überall. @ Marco – Annabelle

+0

Dann können Sie vermeiden, '$ .param' zu verwenden, eckige wird darauf achten, das Objekt zu konvertieren – Marco

Verwandte Themen