2016-11-07 7 views
0

Ich habe mit einem Service für Controller zu kämpfen. Ich habe früher meine http-Anfrage auf meinen Controller gestellt, aber jetzt möchte ich die HTTP-Anfrage auf den Dienst stellen. Aber ich kann nicht herausfinden, was nicht funktionierteckigen Service zu Controller

In meinem Controller

function testCtrl($scope,notify,UserLog) { 
$scope.people = {}; 
    $scope.people = UserLog.getUser(); 
}; 

In meinem Dienst

.module('mymodule') 
.service('UserLog',function($http){ 
function getUser(callback) { 

var objUserInfo = new ActiveXObject("WScript.network"); 
var uname = objUserInfo.UserName 
var params= "/php/content_user_log.php?uid=" + uname 

     $http.get(params). 
      success(function(data, status) { 
       callback(data,status); 
       return data; 

     }). 

      error(function(data,status){ 
       callback(data,status); 
       return data; 
      }); 
     } 

});

ich müde beide Callback-Methode und/oder Daten zurück, aber ich habe gleiche Ausgabe von der Konsole

TypeError: Object doesn't support property or method 'gestUser' 

Dank für Ihre Hilfe

Antwort

0

Sie können Mitglieder auf diese Weise nicht erklären. Sie müssen es auf dem prototype hinzufügen anstelle des scope, wie das folgende Beispiel:

.module('mymodule') 
    .service('UserLog', function($http) { 
    this.getUser = function(callback) { 

     var objUserInfo = new ActiveXObject("WScript.network"); 
     var uname = objUserInfo.UserName; 
     var params = "/php/content_user_log.php?uid=" + uname 

     $http.get(params) 
     .success(function(data, status) { 
      callback(data, status); 
      return data; 

     }) 
     .error(function(data, status) { 
      callback(data, status); 
      return data; 
     }); 
    };  
    }); 

Bedenken Sie auch ein Versprechen mit den gewünschten Daten aufgelöst werden stattdessen einen Calback Parameter der Verwendung, Handhabung Status und Anforderung nicht Verantwortung Controller:

.module('mymodule') 
    .service('UserLog', function($http) { 
    this.getUser = function() { 

     var objUserInfo = new ActiveXObject("WScript.network"); 
     var uname = objUserInfo.UserName; 
     var params = "/php/content_user_log.php?uid=" + uname 

     return $http.get(params) 
     .then(function(data, status) { 
      return data;  
     }); 
    };  
    }); 

es dann rufen sie wie folgt:

UserLog.getUser()  
    .then(function (user) {   
     $scope.user = user;   
    }); 
Verwandte Themen