2016-11-07 126 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;   
    }); 
相關問題