0
.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 ?

2
  • 2
    On the second line instead of this function(connecting, $scope){ TRY function($scope, connecting){ in the order you have injected these. Commented Feb 23, 2016 at 10:29
  • $scope.connect = function () {connecting.login());}; Commented Feb 23, 2016 at 10:31

1 Answer 1

2

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){
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.