小编Sai*_*Sai的帖子

在控制器中为工厂调用服务

调用在我的控制器中使用.factory创建的服务时遇到问题.代码如下所示.工厂(app.js):

.factory('Database',function($http){

    return {

      getDatabase: function(){

        var database = {};

        $http.get('http://localhost:3001/lookup').
          success(function(data){

            database.companyInfo = data.info.companyInfo;
            });


          }).
          error(function(data){
            console.log('Error' + data);
          });

        return database;

      }
    };
  })
Run Code Online (Sandbox Code Playgroud)

控制器:

angular.module('webClientApp')
    .controller('MainCtrl', function (Database,Features,$scope,$http) {




        $scope.databaseString = [];
        $scope.quarters = ['Q1','Q2','Q3','Q4'];
        $scope.years = ['2004','2005','2006','2007','2008','2009','2010',
      '2011','2012','2013','2014'];
        $scope.features = Features.getFeatures();
        $scope.database = Database.getDatabase();

        console.log($scope.database);
Run Code Online (Sandbox Code Playgroud)

现在,当我在Firebug中检查元素时,我console.log($scope.database)在GET语句结果之前得到了打印输出.$scope.database显示为Object {}具有所有适当的礼节.但是,如果我尝试使用,console.log($scope.database.companyInfo)我得到一个undefined结果,而我应该得到data.info.companyInfo' that I passed from the数据库服务(在这种情况下是一个数组).

这里有什么问题?有人能帮我吗?(如果您需要澄清,请告诉我..)

factory angularjs

5
推荐指数
1
解决办法
3万
查看次数

标签 统计

angularjs ×1

factory ×1