xenurs
xenurs

Reputation: 449

Post method angular JS

.controller('LoginConnect', ['$scope', 'connecting',
function(connecting, $scope){
    $scope.user = {};
    var inputLogin = $scope.user.login;
    var inputPassword = $scope.user.password;
    $scope.connect = function (){
      connecting(ConnectingFactory);
    };
  }
])
.factory('connecting', ['$http','$q', function ($http,$q,inputLogin, inputPassword, ConnectingFactory){
var ConnectingFactory = {};
console.log(ConnectingFactory);
ConnectingFactory.login = function(){
       var deferred = $q.defer();
       $http({
           method: 'POST',
           url: "http://api.tiime-ae.fr/0.1/request/login.php",
           headers: {'Content-Type': 'application/x-www-form-urlencoded'},
           transformRequest: function(obj) {
               var str = [];
               for(var p in obj)
               str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
               return str.join("&");
           },
           data: {login: inputLogin, password: inputPassword}
           })
       .success(function(result){
          deferred.resolve(result);
          var promise = deferred.promise;
          promise.then(function(result){
            console.log(result);
            // jsonTab = angular.fromJson(result);
            //  $scope.result = result["data"];
        //  $scope.user.token = result["data"];
           });
         })
       };


       return ConnectingFactory;

}]);
;

And here the HTML :

    <!-- User Connection  -->
<form name="userConnect" ng-submit="connect()" novalidate ng-controller="LoginConnect">
  <label>
    Enter your name:
    <input type="text"
           name="myEmail"
           ng-model="user.login"
            />
  </label>

    <label>
    Enter your Password:
    <input type="password"
           name="password"
           ng-model="user.password"
            />
  </label>

<input type="submit" value="Connection">
<p>resultat : {{result}}</p>
<p ng-model="user.token">
  token : {{mytoken}}
</p>


<p ng-model="user.datab">
  datas : {{datab}}
</p>
<br><br><br>


</form>

Hi, I m new in Angular Js developpement, i have no error but not any data in sent to the API. I think their is no link between my function "connect()" and the factory. Could you help me pls ?

Upvotes: 0

Views: 45

Answers (1)

Satej S
Satej S

Reputation: 2156

Don't use the success method either way.Both methods have been deprecated.

The $http legacy promise methods success and error have been deprecated. Use the standard then method instead. If $httpProvider.useLegacyPromiseExtensions is set to false then these methods will throw $http/legacy error.

Here is the shortcut method

$http.post('/someUrl', data, config).then(successCallback, errorCallback);

Here is a longer GET method sample

$http({
  method: 'GET',
  url: '/someUrl'
}).then(function successCallback(response) {
    // this callback will be called asynchronously
    // when the response is available
  }, function errorCallback(response) {
    // called asynchronously if an error occurs
    // or server returns response with an error status.
  });

Official Documentation

Regarding the factory , call it correctly as ConnectingFactory.login().

Also, the order here is incorrect, as pointed out by Harry.

['$scope', 'connecting',
function(connecting, $scope){

Upvotes: 2

Related Questions