2014-07-19 64 views
0

我無法獲得Angular.js依賴注入的自定義服務的工作。角度服務依賴注入不起作用

這是我的自定義工廠,它從自定義api接收數據。

myApp.factory('myDataService', ['$http', function($http){ 

    myDataService.getData = function() { 

    $http.get('/api/reviews') 
    .success(function(data, status, headers, config) { 

     console.log("Data received"); 
     return data; 

    }) 
    .error(function(data, status, headers, config) { 
     console.error("No data received"); 
    }) 

}; 

return myDataService; 

}]); 

但是,當我在主控制器中注入服務時,編譯器指出myDataService未定義。

var myApp = angular.module('myApp', []); 

myApp.controller('ListCtrl', ['$scope', 'myDataService', function($scope, myDataService) { 


    $scope.books = myDataService.getData(); 

... 

這是爲什麼?

回答

1

你的工廠必須返回一些東西。這是一個的注入返回值:

myApp.factory('myDataService', ['$http', function($http){ 

    var myDataService = {}; 
    myDataService.getData = function() { 
     ... 
    }) 
    return myDataService; 
}; 

更多關於Angular factories