2017-07-05 9 views
-1

"factory"の代わりに "config"を使用すると、プロダクション(heroku)では依存関係注入が機能しません。だから私は工場に変更し、stateProviderは動作しません。

.factory('AboutService', AboutService); 

AboutService.$inject = ['$stateProvider']; 

function AboutService($stateProvider) { 
    $stateProvider 
    .state('about', { 
    url: '/about', 
    template: '<about></about>' 
    }); 
} 

答えて

1

configfactoryは互換性がありませんし、盲目的にスワップすることはできません。

適切な方法はconfigAboutService機能について

.config(AboutService); 

AboutService.$inject = ['$stateProvider']; 

function AboutService($stateProvider) { 
    $stateProvider 
    .state('about', { 
    url: '/about', 
    template: '<about></about>' 
    }); 
} 

わずか1引数です。上記のコードは環境に依存しません。

+0

ありがとうございます!これは、ng-strict-diを追加すると分割され、生産時に縮小されたときに破損します。今朝、このソリューションについて作業していました。 –

+0

エラー:[$ injector:strictdi] configが明示的注釈を使用していないため厳密モードで呼び出すことはできません –

+1

上記のコードは*明示的注釈を使用しています。これはまさに 'AboutService。$ inject = ['$ stateProvider']'行が存在する理由です。どこに問題があるかは、ここにはないか、あなたの実際のコードは答えに示唆されたコードとは異なります。 – estus

関連する問題