2016-02-10 48 views
0

我有一个由模块化angularjs子应用程序组成的项目。 子应用程序相对于根应用程序文件夹驻留在它们自己的文件夹中。 问题是我想通过凉亭包括一个外部模块(卫星)。该模块已正确下载,并且通过gulp/wiredep将bower组件注入到html中。迄今为止都很好。

与控制器的应用程序的结构如下:

(function() { 
'use strict'; 

angular 
    .module('foo.bar') 
    .filter('orderObjectBy', function() { 
     return function (input, attribute) { 
      if (!angular.isObject(input)) return input; 

      var array = []; 
      for (var objectKey in input) { 
       array.push(input[objectKey]); 
      } 

      array.sort(function (a, b) { 
       a = parseInt(a[attribute]); 
       b = parseInt(b[attribute]); 
       return a - b; 
      }); 
      return array; 
     } 
    }) 
    .controller('FoobarController', FoobarController); 

FoobarController.$inject = ['logger', '$q', 'dataservice', '$stateParams', 'fooBarHandler', '$location', 'satellizer']; 
/* @ngInject */ 
function FoobarController(logger, $q, dataservice, $stateParams, fooBarHandler, $location, $authProvider) { 
    var vm = this; 
    fooBarHandler.includeIn(vm, dataservice); 

    vm.authorize = authorize; 


    }   
} 

问题是,角度保持说satellizer是未知提供商(未知提供商:satellizerProvider < - satellizer < - FooBarController) 为为了简洁起见,我省略了很多来自控制器实现的代码。

我也尝试要连接经由阵列依赖性的依赖性像这样:

angular 
    .module('foo.bar', ['satellizer']) 
    .filter('orderObjectBy', function() { 
     return function (input, attribute) { 
      if (!angular.isObject(input)) return input; 

      var array = []; 
      for (var objectKey in input) { 
       array.push(input[objectKey]); 
      } 

      array.sort(function (a, b) { 
       a = parseInt(a[attribute]); 
       b = parseInt(b[attribute]); 
       return a - b; 
      }); 
      return array; 
     } 
    }) 

但仍没有运气。

+0

试试这个'angular.module( 'foo.bar',[ 'satellizer'])' –

+0

希望你也在你的html文件中导入了卫星。 – dendimiiii

+0

是的,我在我的HTML文件中导入卫星。通过基于bower.json的gulp构建连线。 我也试过包括通过阵列依赖的卫星,但然后卫星变量是undefined – MDemmers

回答

2

得到它的工作。 通过挖掘卫星源后,我意识到我需要从提供商注入。卫星已将其提供商定义为'$ auth'。所以,以后我改了行

FooBarController.$inject = ['logger', '$q', 'dataservice', '$stateParams', 'fooBarHandler', '$location', 'satellizer]; 

FooBarController.$inject = ['logger', '$q', 'dataservice', '$stateParams', 'fooBarHandler', '$location', '$auth]; 

它的工作

相关问题