在我的 Angular 应用程序中,我试图创建一个 dataAdapter
工厂,在其中我可以在本地适配器
和api适配器
之间快速切换在开发和发布期间。
我的 dataAdapter 工厂如下所示
myApp.factory('dataAdapter', function($http, $q){
var dataAdapter = new apiAdapter;
//var dataAdapter = new localAdapter;
return dataAdapter;
});
我的适配器对象(这里是 api 适配器)看起来像这样。 (这将位于另一个名为 apiAdapter.js 的文件中)
var apiAdapter = function(){
return {
getData : function(){ $http.get(). ....; }
}
}
现在这对我不起作用,因为 $http 在 apiAdapter
对象内不可用。现在,如果我将 var apiAdapter = function(){....}
移到 var dataAdapter = new apiAdapter;
之前,它就可以正常工作。有没有办法让 apiAdapter 可以使用 Angular 服务,而无需将其移动到工厂内部?
我希望我能够清楚地描述我的问题。
最佳答案
我真的没有看到分片这个小功能的意义,所以在我看来它应该看起来像
myApp.factory('dataAdapter', function($http, $q){
return {
getData : function(){ $http.get(). ....; }
}
});
但如果由于某种原因你必须这样做
myApp.factory('dataAdapter', function($http, $q){
var dataAdapter = new apiAdapter($http);
//var dataAdapter = new localAdapter;
return dataAdapter;
});
var apiAdapter = function(http){//
return {
getData : function(){ http.get(). ....; }
}
}
关于javascript - 如何使Angular的服务可供独立对象使用; Angular JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24627443/