2017-05-28 10 views
0

私は新しいプロジェクトを作成しましたが、修正できない問題がありました。ここで"Controller"が登録されていませんangularjs

は私の例です:

私はこのエラーがあります:

"エラー:[$コントローラ:CTRLREG]。名前を持つコントローラ 'のPostController' が登録されていませんが"

Connexion.html

<section id="login" ng-controller="PostController as postCtrl"> 
<div class="container center-bloc"> 
    <div class="row"> 
     <div class="col-xs-12"> 
      <div class="form-wrap"> 
       <div class="text-center"> 
        <img id="logo" style="max-width:100%;" src="img.png"> 

       </div> 
       <h2 id="ResultConnexion"></h2> 
       <form role="form" id="login-form" ng-submit="postCtrl.Search1()" method="POST" autocomplete="off"> 
        <div class="form-group"> 
         <input id="userLogin" required autofocus ng-model="postCtrl.inputData.username" type="text" name="user" id="email" class="form-control" placeholder="[email protected]"> 
        </div> 
        <div class="form-group"> 
         <input id="userPassword" required ng-model="postCtrl.inputData.password" type="password" name="mdp" id="key" class="form-control" placeholder="Password"> 
        </div> 
        <button type="submit" class="btn btn-custom btn-lg btn-block" ng-disabled="login.$invalid" >Connexion</button> 
        <div class="alert alert-danger" ng-show="errorMsg"> 
         <button type="button" class="close" data-dismiss="alert" aria-hidden="true"> 
          ×</button> 
         <span class="glyphicon glyphicon-hand-right"></span>&nbsp;&nbsp;{{errorMsg}} 
        </div> 
        <div></div> 
       </form> 
       <hr> 
      </div> 

     </div> 
    </div> 
</div> 

インデックス。 js

'use strict'; 
var routeApp = angular.module("routeApp", ["ngRoute"]); 
routeApp.config(function($routeProvider) { 
$routeProvider 
    .when("/", { 
     url: "/", 
     templateUrl : "template/connexion.html", 
     controller : "PostController" 
    }) 

}); 






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



routeAppControllers.controller('PostController', ['$scope', '$http', function($scope, $http) { 


this.postForm = function() { 



    var Pass = {"user":(this.inputData.username),"mdp":(this.inputData.Password)}; 

    $http({ 
     method: 'POST', 
     url: '/', 
     data: Pass, 
     headers: {'Content-Type': 'application/json'} 
    }) 

     .then(function(response) { 


      if (response.data.resultat == 0) { 

       window.location.href = '/information'; 
       alert('hello') 

      } else { 
       $scope.errorMsg = 'Bad'; 
      } 
     }, function(response) { 
      // called asynchronously if an error occurs 
      // or server returns response with an error status. 
     }) 
} 

}]); 

誰でも手助けできますか?

答えて

0

あなたはテンプレートからng-controller="PostController as postCtrl">を削除する必要があると思います。ルートで定義したからです。また、以下に変更します。

.when("/", { 
    url: "/", 
    templateUrl : "template/connexion.html", 
    controller : "PostController as postCtrl" 
}) 

あなたがvar vm = thisを宣言し、あなたが示していないし、どちらも他に注入された二つの別々のモジュールを持っているvm代わりのthis

vm.postForm = function() {...} 
+0

複数のコントローラインスタンスで終わります – Gazano

1

を使用することをお勧めし別の先端。あなたのng-appを想定し

はまた、あなたは一度だけngRouteを注入する必要がrouteAppモジュール

var routeApp = angular.module("routeApp", ["ngRoute", "routeAppControllers"]); 

routeAppControllersモジュールを挿入する必要がrouteApp使用しています。

他の回答で述べたように、それはまた、ルーティングの設定で宣言されていないときにのみng-controllerを使用するか、私は両方のソリューションをテストしたが、どれも働いた

関連する問題