在 angular 工厂中使用第三方库

Use third party library in a angular factory

这是我的工厂:

.factory('DataService',['$http',function($http, Backand ){
    var data = [];
    return {
        GetData: function(){
            return $http.get(Backand.getApiUrl() + '/1/objects/details').then(function(response){
                data = response;
                return response;
            });
        },
        GetElem: function(personId){
            for(i=0;i<data.length;i++){
                if(data[i].id == personId){
                    return data[i];
                }
            }
        }
    }

}]);

现在是问题。第三方库 Backand 已正确注入,但出现错误:Cannot read property 'getApiUrl' of undefined

因此 Backand 未定义。当我在控制器中使用 Backand 时,一切正常。

我应该怎么做才能解决这个问题?

您在注射

时遗漏了 Backand

改变这个:

.factory('DataService',['$http',function($http, Backand ){

为此:

.factory('DataService',['$http', 'Backand',function($http, Backand ){

希望这对你有用。