在我的有角度的应用程序中,我试图建立一个dataAdapter工厂,以便在开发和发布期间在local adapterapi adapter之间快速切换。

我的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而不在工厂中移动它?

我希望,我能够清楚地描述我的问题。

最佳答案

分片这样的小功能真的没什么意义,所以我认为它看起来像

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(). ....; }
  }
}

09-28 11:04