2015-09-27 44 views
6

これはよくある問題ですが、これまでに質問した内容を読んで解決策を見つけることができませんでした。AngularJSがコントローラを見つけることができません

実際には2つのエラーが発生していますが、最初のエラーはコントローラを見つけることができません。 ?

http://errors.angularjs.org/1.4.2/ $インジェクター/ nomod P0 = myApp.controllers

私のディレクトリ構造は以下のようになります。

. 
└── static 
    ├── index.html 
    ├── js 
    │   ├── app.js 
    │   └── controllers.js 
    ├── lib 
    │   └── angular-ui-router.min.js 
    └── partials 
     ├── view1.html 
     └── view2.html 

私のインデックスファイルには、次のようになります。

<html ng-app="myApp"> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Hello AngularJS</title> 
    </head> 
    <body> 
     <div ui-view></div> 
     <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular.min.js"></script> 
     <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular-route.min.js"></script> 
     <script type="text/javascript" src="lib/angular-ui-router.min.js"></script> 
     <script type="text/javascript" src="js/controllers.js"></script> 
     <script type="text/javascript" src="js/app.js"></script> 
    </body> 
</html> 

マイapp.jsファイルは次のようになります。

(function(angular) { 

    var app = angular.module('myApp', ['ui.router', 'myApp.controllers']); 

    app.config(function($stateProvider) { 
     $stateProvider.state('view1', { 
      url: '/view1', 
      templateUrl: 'partials/view1.html', 
      controller: 'View1Controller' 
     }).state('view2', { 
      url: '/view2', 
      templateUrl: 'partials/view2.html', 
      controller: 'View2Controller' 
     }); 
    }).run(function($state) { 
     $state.go('view2'); 
    }); 

})(angular); 

マイcontroller.jsファイルには、次のようになります。

(function(angular) { 
    var app = angular.module('myApp.controllers'); 

    app.controller('View1Controller', function($scope) { 
     $scope.data = 'my view 1'; 
    }); 

    app.controller('View2Controller', function($scope) { 
     $scope.data = 'my view 2'; 
    }); 

})(angular); 
また

関連するかもしれない二error

上記のように、角度は私のコントローラを見つけることができません。誰かが私が間違っていることについての手がかりを持っていますか?より多くのコードを貼り付ける必要がある場合はお知らせください。

私はgithubでコードを共有しました。誰かが扱いやすいと思った場合に備えてです。角度angular.module()

https://github.com/tonsV2/angular-ui.route/tree/master/src/main/resources/static

+0

に変更しセッターとしてそれを使用するに

セッター

。 'app.js'ファイルは' controllers.js'よりも先に読み込まなければなりません。 – Niezborala

答えて

7

セッターとゲッターです。 angular.moduleドキュメント(@DanAtkinson's commentを介して)によると: 通過つ以上の引数が新しいangular.Moduleを作成するのに対し、一つの引数を渡す

は、既存のangular.Moduleを取り出します。

ゲッター

var app = angular.module('myApp.controllers');ゲッターとしてモジュールを使用します。

モジュールmyApp.controllersがまだ作成されていないため失敗します。ロードされたスクリプトの順序位置を変更しようと

var app = angular.module('myApp.controllers', []); // note the [] 
+1

[docs](https://docs.angularjs.org/api/ng/function/angular.module)は、このget/setロジックを非常に明確にしませんが、最初の行には次の文があります。 '1つの引数を渡すと既存のangular.Moduleが取得されますが、複数の引数を渡すと新しいangular.Module'が作成されます。おかげさまで –

+1

私はそれを追加しました。 –

関連する問題