2017-07-05 13 views
0

この「コントローラーが登録されていません」というエラーはなぜ発生しませんか?名前がxのコントローラーが登録されていません

コントローラー:

var app = angular.module('app', ['ngRoute']); 
app.controller("formCtrl", function($scope, $rootScope, $stateParams) { 
    $scope.id = $stateParams.id; 
}); 

インデックス:

<html> 
    <head> 
    <script src="js/angular.js"></script> 
    <script src="js/angular-route.js"></script> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <script src="js/formCtrl.js" type="text/javascript"></script> 
    <script src="js/app.js" type="text/javascript"></script> 
    </head> 
    <body ng-app="app"> 
    <div ng-view> 
    </div> 
    </body> 
</html> 

アプリケーション:

app = angular.module('app', ['ngRoute']); 

app.config(function($routeProvider) { 
    $routeProvider 
    .when("/:id", { 
    templateUrl: './partials/main.html', 
    controller: 'formCtrl' 
    }); 
}) 

答えて

1

これは、既存のアプリケーションモジュールを再利用するのではなく、実際にコントローラの新しいモジュールを作成しているためです。

angular.module('app').controller("formCtrl", function($scope, $rootScope, $stateParams) { 
    $scope.id = $stateParams.id; 
}); 

あなただけが意図新しいモジュールを作成する際angular.module()の第2引数を指定する必要があります:あなたは、単にこれにあなたのコントローラのコードを変更するには、この問題を解決するには

。アプリケーションにコントローラ、コンポーネント、サービスなどを登録する場合は、最初の引数:angular.module('app')のみを適用します。

注:コントローラjsファイルがアプリケーションjsファイルの後にロードされていることを確認してください。

+1

それはそれだった、thx :) – Sandroggy

0

これを試してみてください。

var app = angular.module('app', ['ngRoute']); 
app.controller("formCtrl",["$scope", "$rootScope", "$stateParams", function($scope, $rootScope, $stateParams) { 
    $scope.id = $stateParams.id; 
}]); 
+0

コードに同じエラーがあります。 – Sandroggy

関連する問題