2016-04-21 88 views
0

我跟随John Papa's Angular1 styleguide并试图实施提供商。AngularJS提供商不按照styleguide工作

提供商按文件看起来是这样的,

angular 
    .module('blocks.router') 
    .provider('routerHelper', routerHelperProvider); 

routerHelperProvider.$inject = ['$locationProvider', '$stateProvider', '$urlRouterProvider']; 
/* @ngInject */ 
function routerHelperProvider($locationProvider, $stateProvider, $urlRouterProvider) { 
    /* jshint validthis:true */ 
    this.$get = RouterHelper; 

    $locationProvider.html5Mode(true); 

    RouterHelper.$inject = ['$state']; 
    /* @ngInject */ 
    function RouterHelper($state) { 
     var hasOtherwise = false; 

     var service = { 
      configureStates: configureStates, 
      getStates: getStates 
     }; 

     return service; 

     /////////////// 

     function configureStates(states, otherwisePath) { 
      states.forEach(function(state) { 
       $stateProvider.state(state.state, state.config); 
      }); 
      if (otherwisePath && !hasOtherwise) { 
       hasOtherwise = true; 
       $urlRouterProvider.otherwise(otherwisePath); 
      } 
     } 

     function getStates() { return $state.get(); } 
    } 
} 

我嘲笑了here on plnkr一个非常基本的版本

我的供应商:

angular 
    .module('plunker') 
    .provider('random', function() { 
    this.$get = helper; 
    this.getX = function() { 
     return 10; 
    } 

    function helper() { 
     var provider = { 
     getX: getX, 
     getY: getY 
     } 

     return provider; 

     function getX() { 
     return 10; 
     } 

     function getY() { 
     return 20; 
     } 
    } 
    }); 

所以,getX工作正常,但getY未定义。

恐惧,我失去了一些非常微不足道的东西。

回答

0

你不是应该加入getY方法吗?

angular 
    .module('plunker') 
    .provider('random', function() { 
    this.$get = helper; 
    this.getX = function() { 
     return 10; 
    } 
    this.getY = function() { 
     return 10; 
    } 

    function helper() { 
     var provider = { 
     getX: getX, 
     getY: getY 
     } 

     return provider; 
     // not required after return statement, why you need them? 
    } 
}); 
+0

我知道,但这不是按照styleguide的结构。 – qweqwe