将工厂注入控制器

时间:2016-07-02 09:52:37

标签: angularjs dependency-injection factory

我的应用程序模块在index.js.中定义如下。我只是创建模块并添加控制器,与模块关联的工厂。

import controller from './controllers/myAppController';
import factory from './controllers/myAppFactory';

angular.module("myApp" , [])
.config(..//code)
.controller('myAppCtrl',['$scope','myappFactroy',controller])
.factory('myappFactory',['$http',factory]);

myAppController.js

const myAppController= function($scope,factory) {
 $scope.myData= factory.getJsonFile(); //here am not getting the file
};

export default myAppController;

myAppFactory.js

const myAppFactory= function($http) {

    function getJsonFile (){
        $http.get('/sample/app/mock-data/test.json').success(function(data) {
          return data;
        }).error(function(){
            alert("Error in getting the file");
        });
    }

    return{
        getJsonFile:getJsonFile
    };

};

export default myAppFactory;

问题:

1)我在工厂获取数据,如[object] [object]。但是在控制器中我没有得到数据。 $ scope.myData是undefine。

问题:

1)在定义angular.module时,我需要更改定义控制器和模块的顺序。即。应该首先定义工厂然后再控制器,因为控制器依赖于工厂?

eg: angular.module("myApp",[])
.config()
.factory()
.controller();

2)如果我的工厂需要$ http,我是否需要将它注入我的控制器,因为它将调用工厂方法?

3)解析收到的json响应并从中获取数据的最佳方法是什么。

0 个答案:

没有答案