使用angularjs

时间:2017-03-23 16:16:29

标签: javascript angularjs

我使用angularjs创建应用程序,我有两个控制器和一个服务(全部在分隔文件中)。我的问题是我无法在控制器中注入服务。我在与控制器相同的文件中使用该服务并且它工作正常,但我希望它在分离的文件中在控制器之间共享数据。

这是我的控制器之一

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

    app.controller('login',['$scope','$location','$window', function(ServiceUser,$scope,$location,$window){
.....
}]);

这是我的服务

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

app.factory('ServiceUser',function(){
    var user=[];

    return{
        add: add,
        get: get
    }

    function add(item){
        user.push(item);
    }

    function get(){
        return user;
    }

    return user;
});

我收到此错误:

未捕捉错误:[$ injector:modulerr] http://errors.angularjs.org/1.6.4-build.5327+sha.233f47b/ $ injector / modulerr ... 20(https%3A%2F%2Fcode.angularjs.org%2Fsnapshot%2Fangular.min.js%3A22%3A179)

你能告诉我我做错了什么,我到处搜索并尝试了多种解决方案,但没有任何效果!

1 个答案:

答案 0 :(得分:2)

由于您已为服务定义了单独的模块,因此需要在service模块声明中注入cloudpear模块。

var app = angular.module('cloudpear', ['ngRoute','service']); 
                                                 //^^^^^^^^^^ instead of ServiceUser

然后需要在控制器中注入服务

app.controller('login',['ServiceUser', '$scope','$location','$window',function(ServiceUser, $scope,$location,$window){