2016-02-22 1 views
1
.controller('LoginConnect', ['$scope', 'connecting', 
function($scope, connecting){ 
    $scope.user = {}; 
    $scope.connect = function(){ 
     connecting(); 
    }; 

    } 
]) 
.factory("connecting", ["$scope", "$q", "$http", function ($scope,$q, $http){  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: $scope.user.login, password: $scope.user.password} 
      }) 
     .success(function(result){ 
      deferred.resolve(result); 
      var promise = deferred.promise; 
      promise.then(function(result){ 
      jsonTab = angular.fromJson(result); 
      $scope.result = result["data"]; 
     $scope.user.token = result["data"]; 
      }); 
     }) 

    }]) 

;Ссылка между контроллером и заводом-изготовителем

и здесь 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> 

Привет, Я новичок в угловых JS, не могли бы вы мне помочь PLS, чтобы фиксируем это. У меня есть следующее сообщение об ошибке: $ scopeProvider < - $ < области видимости - подключение Я думаю, что эта ошибка происходит из-за линии betwwen контроллера и фабрики

+0

где ваш метод «подключения»? то есть. как вы рассчитываете называть соединение, не записывая его! – Alok

ответ

1

Ваша служба должна вернуть что-то. вместо этого попытаться:

.factory("connecting", ["$scope", "$q", "$http", function connect($scope,$q, $http){  
    return function() { 
     //your method 
    }; 
}]) 
0

Вот код Пример ссылки контроллера и завод, похожий на ваш. Вы просто возвращаете что-то с завода.

.controller('LoginConnect', ['$scope', 'connecting', 
       function($scope, connecting) { 
        $scope.user = {}; 
        $scope.connect = function() { 
         connecting.login($scope.signupData.username, $scope.signupData.password).success(function(data) { 
           // 
           $sessionStorage.userid = data.UserId; 
           $sessionStorage.token = data.access_token; 
           if (data.UserId != "") { 
            $state.go('app.editProfile'); 
           } 
          }) 
          .error(function(data, status, headers, config) { 
           console.log("http error", data); 
          }); 
        }; 

       } 
      ]) 
      .factory('connecting', ["$scope", "$q", "$http", function ($scope,$q, $http){  

       var urlBase = 'http://apple.com:7071'; 

       //Login 
       return { 
        login: function(loginusername, loginpassword) { 

         return $http({ 
          method: 'POST', 
          url: urlBase + '/Login', 
          data: { 
           username: loginusername, 
           password: loginpassword, 
           grant_type: 'password' 
          }, 
          transformRequest: function(obj) { 
           var str = []; 
           for (var p in obj) 
            str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); 
           return str.join("&"); 
          } 
         }) 

        } 
       } 
      }]) 
0

Fatcory должен вернуть Object.

.factory("connecting", ["$scope", "$q", "$http", function ($scope,$q, $http){ 

    var 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: $scope.user.login, password: $scope.user.password} 
      }) 
     .success(function(result){ 
      deferred.resolve(result); 
      var promise = deferred.promise; 
      promise.then(function(result){ 
      jsonTab = angular.fromJson(result); 
      $scope.result = result["data"]; 
     $scope.user.token = result["data"]; 
      }); 
     }) 
    }; 

    return ConnectingFactory; 

}]);