在 Angular 工厂中使用第三方库

Posted

技术标签:

【中文标题】在 Angular 工厂中使用第三方库【英文标题】:Use third party library in a angular factory 【发布时间】:2016-07-29 21:46:28 【问题描述】:

这是我的工厂:

.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 时,一切正常。

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

【问题讨论】:

【参考方案1】:

你在注入时缺少Backand

改变这个:

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

致此:

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

希望这对你有用。

【讨论】:

以上是关于在 Angular 工厂中使用第三方库的主要内容,如果未能解决你的问题,请参考以下文章

Angular 库无法在包中包含第三方库

angular2怎么使用第三方的库

Angular Architecture - 导入第三方库以将其使用到功能模块中

Angular2 CLI Socket.io(第三方库导入)

如何将组件中的 Angular2 方法作为第三方库的回调方法传递?

Angular 2 应用程序结构/核心模块和第三方库