2016-04-21 11 views
0

Ich folge John Papa's Angular1 styleguide und versuche, einen Provider zu implementieren.AngularJS Provider arbeitet nicht nach Styleguide

Der Anbieter gemäß dem Dokument wie folgt aussieht,

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(); } 
    } 
} 

I here on plnkr

Mein Provider eine sehr einfache Version verspottet haben:

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; 
     } 
    } 
    }); 

So getX funktioniert gut, aber getY ist nicht definiert.

Angst, mir fehlt etwas sehr trivial.

Antwort

0

Es sieht aus wie Sie einen Getter für getX haben, aber nicht für getY:

this.getX = function() { 
    return 10; 
} 

this.getY = function() { 
    return 20; 
} 

Hier eine gegabelt Version Ihres Plunker ist: http://plnkr.co/edit/lHBj6LiirisZ4Bb6DM9M?p=preview

+0

das ist nicht was der styleguide sagt? – qweqwe

0

Sollten Sie nicht getY Methode auch das Hinzufügen?

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

Ich weiß, aber so ist die Struktur nicht wie im Styleguide. – qweqwe

Verwandte Themen