以角度

时间:2015-11-24 15:48:40

标签: angularjs

我只在角度工作了一家工厂,但是现在我的项目变得太大了,我想把文件分成不同的工厂。

我的工厂是这样的:

angular.module('factories')
.factory('auth', ['$http', '$state', '$window',
    function($http, $state, $window) {
        var auth = {};

        ......

        return auth;

Userfactory:

angular.module('factories')
.factory('userFactory', ['$http', '$state', '$window',
  function($http, $state, $window) {
    var userFactory = {};
    return userFactory;

我将它们注入我的控制器中:

angular.module('controllers')
.controller('UserCtrl', ['$scope', '$state', 'auth', 'userFactory', 'Facebook',
    function ($scope, $state, auth, userFactory, Facebook) {

但是我收到以下错误:

  

错误:[$ injector:unpr]   http://errors.angularjs.org/1.4.7/ $注射器/ unpr?P0 = userFactoryProvider%20%3 C-%20userFactory%20%3 C-%20UserCtrl

我也在引导我的工厂:

angular.module('factories', []);

我将工厂注入app.js:

var app = angular.module('eva', ['ui.router', 'ngMaterial', 'ngMessages',
  'controllers', 'factories', 'ngAnimate', '720kb.socialshare',
  'angular-loading-bar', 'angular-svg-round-progress', 'pascalprecht.translate',
  'facebook']);

与多个工厂合作的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

由于工厂位于单独的模块中,因此您需要为controller模块设置依赖关系,因为它使用factories模块中的工厂。

执行类似

的操作
angular.module('controllers', ['factories'])
.controller('UserCtrl', ['$scope', '$state', 'auth', 'userFactory', 'Facebook',
function ($scope, $state, auth, userFactory, Facebook) {

答案 1 :(得分:2)

检查是否已将脚本导入索引文件。您需要在angular.js文件之后导入两个服务中的文件。