Angular找不到我的工厂

时间:2015-11-17 12:54:05

标签: angularjs angularjs-scope angular-controller

所以我创建了一个小型工厂来获取我的本地json文件现在我想将这些数据传递给我的控制器,但它找不到工厂名称并说出未解决的变量'。

以下是我的代码片段,我猜这与现在相关。

(function () {

    var app = angular.module('locatieTool', ['ngRoute']);

    app.controller('teamController', function ($scope) {
        function init () {
            dataFactory.getTeams().success(function(data) {
                $scope.teams = data
            });
        }
        init();
        console.log($scope.teams);
    });

    // factory
    app.factory('dataFactory', function($http) {
        var team = {};

        //get local data
        team.getTeams = function() {
            return $http.get ('http://localhost:4040/');
        };
        return team;
    });

})();

我的目标只是控制日志$ scope.teams,而不是我可以用数据做更多。

2 个答案:

答案 0 :(得分:2)

您应该在控制器中包含“dataFactory”

(function () {
    var app = angular.module('locatieTool', ['ngRoute']);

    app.controller('teamController', function ($scope, dataFactory) {
        function init () {
            dataFactory.getTeams().success(function(data) {
                $scope.teams = data
            });
        }
        init();
        console.log($scope.teams);
    });

    // factory
    app.factory('dataFactory', function($http) {
        var team = {};

        //get local data
        team.getTeams = function() {
            return $http.get ('http://localhost:4040/');
        };
        return team;
    }); })();

答案 1 :(得分:0)

我相信您需要将工厂传递给控制器​​:

app.controller('teamController', function ($scope, dataFactory) {
    function init () {
        dataFactory.getTeams().success(function(data) {
            $scope.teams = data
        });
    }
    init();
    console.log($scope.teams);
});