1

サブモジュールをメイン アプリにインジェクトしたいのですが、インジェクション エラーが発生しました

(エラー: [ng:areq] http://errors.angularjs.org/1.3.5/ng/areq?p0=SelectionCtrl&p1=not%20aNaNunction%2C%20got%20undefined

私のメインアプリです

ここに画像の説明を入力

そしてそれは私のサブモジュールです ここに画像の説明を入力

どうすれば修正できますか?ありがとう!

4

1 に答える 1

2

モジュール宣言をめちゃくちゃにしています。あなたはangular.module('app.newProject')2回宣言しました。

初めて登録したときに作成しますSelectionCtrl。その後、angular.module('app.newProject,[]')依存関係と登録済み TabController1コントローラーを使用して、同じ名前の別のモジュールを作成しました。2番目のモジュールを作成すると、最初のモジュールがオーバーライドされTabController1、角度がエラーをスローSelectionCtrlする必要があるのはそれだけです。

このアプローチを解決するいくつかのアプローチがあります。

アプローチ1

モジュールを作成して変数に保存し、いつでも使用できます。

var controllerApp = angular.module('app.newProject', [])
.controller('SelectionCtrl',function(){ 
    //code here
});

controllerApp.controller('TabController1',function(){
 //your code here
});

アプローチ 2

モジュールを作成し、必要なときにいつでも依存関係なく使用できます。

angular.module('app.newProject', [])
.controller('SelectionCtrl',function(){ 
    //code here
});

angular.module('app.newProject').controller('TabController1',function(){
 //your code here
});

アプローチ 3 (私はこのアプローチを好みません)

モジュールを作成し、直線的な方法でコンポーネントを追加します。

angular.module('app.newProject', [])
.controller('SelectionCtrl',function(){ 
    //code here
})
.controller('TabController1',function(){
 //your code here
});

モジュールを参照してコンポーネントをバインドできるアプローチ 2 をお勧めします。

于 2015-01-23T20:25:52.753 に答える