2016-04-10 15 views
0
function MainCtrl($scope, $http, $interval, $state, $location) 
{ 
} 

angular 
    .module('inspinia', ['angularCharts']) 
    .controller('MainCtrl', MainCtrl) 

私が注入しようとしても、エラーが発生します。説明はあまり明確ではありません。例えば、Angur自身の前後に注射があるスクリプトを引っ張ってもいいですか?その他AngularJs注入エラー

上記のコードに何か間違いがありますか?

重要:これは完璧な機能です。コメントで指摘されているように、エラーは明らかですが、それは, ['angularCharts']を追加した場合にのみ発生します。それ以前は、クーデターはうまく働いていて、ルーティング、状態のchanegsとすべて。

私はerorrメッセージが赤いニシンであると思われます。問題は、, ['angularCharts']を追加することに由来しますが、なぜですか?

Error: [$injector:unpr] Unknown provider: $stateProvider <- $state <- MainCtrl 
http://errors.angularjs.org/1.5.0/$injector/unpr?p0=%24stateProvider%20%3C-%20%24state%20%3C-%20MainCtrl 
    at angular.js:68 
    at angular.js:4397 
    at Object.getService [as get] (angular.js:4550) 
    at angular.js:4402 
    at getService (angular.js:4550) 
    at injectionArgs (angular.js:4574) 
    at Object.invoke (angular.js:4596) 
    at extend.instance (angular.js:9855) 
    at nodeLinkFn (angular.js:8927) 
    at compositeLinkFn (angular.js:8226)(anonymous function) @ angular.js:13236(anonymous function) @ angular.js:9965Scope.$apply @ angular.js:16925bootstrapApply @ angular.js:1694invoke @ angular.js:4604doBootstrap @ angular.js:1692bootstrap @ angular.js:1712angularInit @ angular.js:1606(anonymous function) @ angular.js:30423j @ jquery-2.1.1.min.js:2k.fireWith @ jquery-2.1.1.min.js:2n.extend.ready @ jquery-2.1.1.min.js:2I @ jquery-2.1.1.min.js:2 

[更新]私は、フレームワーク上でアプリを基づかています。私はそれがどれほど良いのか分かりませんが、それは働きます(状態の変化とすべて)。

のindex.htmlは以下が含まれているファイル<script src="js/app.js"></script>

を持っています。たぶん私は['angularCharts']を追加する必要がありますか?実際には、私のコントローラの最後にその.module行を持っているのは間違っていますか?

(function() { 
    angular.module('inspinia', [ 
     'ui.router',     // Routing 
     'oc.lazyLoad',     // ocLazyLoad 
     'ui.bootstrap',     // Ui Bootstrap 
    ]) 
})(); 
+1

コードには単回注射はありませんが、あなたまた、エラーメッセージも表示されません。 –

+1

おそらくエラーも投稿するべきです。 –

+0

@jbnizet私は 'angularCharts'を注入しようとしていたのです。私はPlunkからコピーしましたが、明らかに十分にコピーされませんでした。私は既存のアプリケーションにチャートを入れようとしています – Mawg

答えて

1

問題が

angular.module('inspinia', ['angularCharts']) 

をやったときに、アプリケーションのメインモジュールを再定義しているということですので、モジュールは、以前に追加したすべてのコンポーネント、およびそのすべての依存関係(UI-ルータを失います、など)。

代わりに、あなたはangularChartsへの依存性を追加するためのモジュールのaxistingの定義を変更する必要があり、そして、あなたのコントローラでは、単に以前に定義されたモジュールを取得:

angular.module('inspinia').controller(...); 
関連する問題