2016-11-07 123 views
0

我正在努力与控制器的服务。我以前在我的控制器上放置了我的http请求,但现在我想改进并将http请求提供服务。但我无法找出什么是不工作角度服务到控制器

在我的控制器

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

在我的服务

.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; 
      }); 
     } 

});

我厌倦了这两个回调方法和/或从控制台

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

谢谢返回的数据,但我有相同的输出对您有所帮助

回答

0

这样你不能声明的成员。此外

.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; 
     }); 
    };  
    }); 

,可以考虑使用一个承诺与所需的数据,而不是使用calback参数,处理状态,并要求得到解决是不是责任:您必须添加它的prototype而不是scope,如下例所示控制器:

.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;  
     }); 
    };  
    }); 

然后调用它像这样:

UserLog.getUser()  
    .then(function (user) {   
     $scope.user = user;   
    }); 
相关问题