2017-11-23 22 views
0

コントローラ

 var ToDo=angular.module('ToDo',[]); 
ToDo.controller('resetPasswordController',function($scope,resetPasswordService,$location){ 
    $scope.resetPassword=function(){ 
     var message=resetPasswordService.resetPassword($scope.user); 
     message.then(function(response){ 
      console.log(response.data.message); 
      if(response.data.message=="password is reset") 
       $location.path("/login"); 
     }); 
    } 

}); 

サービスファイルをファイル

var ToDo = angular.module('ToDo',['ngResource']); 
ToDo.factory('resetPasswordService', function($resource,$http) { 
    var token=sessionStorage.getItem("token"); 
    var details = {}; 
    if(token!=null){ 
     console.log(token); 
     sessionStorage.removeItem("token"); 
     details.resetPassword = function(user) { 
      /*user.$save();*/ 
      return $resource('http://localhost:8080/ToDo/forgotPassword/resetPassword/:Token',{Token:token}); 
     } 
    } 
    return details; 
}); 

mainapp.js

var ToDo = angular.module('ToDo', [ 'ui.router']); 
    ToDo.config([ '$stateProvider', '$urlRouterProvider', 

    function($stateProvider, $urlRouterProvider) { 
    $stateProvider.state('resetPassword', { 
     url : '/resetPassword', 
     templateUrl : 'template/resetPassword.html', 
     controller : 'resetPasswordController' 
    }); 
    $urlRouterProvider.otherwise('resetPassword'); 
    } ]); 
に登録されていません

テンプレートファイル

<form> 
    <h3 align="center">Re-set New Password</h3> 
    <div class="col-sx-12 col-md-12 col-lg-12"> 
     <div class="form-group"> 
      <label class="control-label">Enter New Password</label> 
      <input type="password" class="form-control" 
       data-ng-model="user.newPassword" name="emailId" required> 
     </div> 
    </div> 
    <div class="col-sx-12 col-md-12 col-lg-12"> 
     <div class="form-group"> 
      <label class="control-label">Re-Enter The New Password</label> 
      <input type="password" class="form-control" 
       data-ng-model="user.reEnterNewPassword" name="username" required> 
     </div> 
    </div> 
    <div class="col-sx-12 col-md-12 col-lg-12"> 
     <div class="form-group"> 
      <button id="buttons" type="submit" data-ng-click="resetPassword()">Submit</button> 
     </div> 
    </div> 
    <div class="col-sx-12 col-md-12 col-lg-12"> 
     <div class="form-group"> 
      <div> 
       Want To try <a href="#!/login">Sign-In Again?</a> 
      </div> 
     </div> 
    </div> 
    <div class="row"></div> 
</form> 

index.jspを

<!DOCTYPE html> 
<html> 
<head> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 

<link rel="stylesheet" 
    href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"> 
<link rel="stylesheet" 
    href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
<link rel="stylesheet" href="css/scriptpage.css"> 

<script type="text/javascript" 
    src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script type="text/javascript" 
    src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
<script type="text/javascript" 
    src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular.min.js"></script> 
<script type="text/javascript" 
    src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular-resource.js"></script> 
<script type="text/javascript" 
    src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/1.0.3/angular-ui-router.min.js"></script> 

<script type="text/javascript" 
src="controller/resetPasswordController.js"></script> 

>

<script type="text/javascript" src="script/ToDoApp.js"></script> 

</head> 
<body data-ng-app="ToDo"> 
    <div data-ui-view></div> 
</body> 
</html> 

私は、コントローラの前にToDoApp.jsを入れて、私の見解にサービスを提供するときだけ、空白になり、私はそれらのHTMLページの後に入れたときに表示けどさエラー:$ controller:ctrlreg この名前のコントローラは登録されていません。 resetPasswordControllerの場合 この問題で私を助けてください。

はい、[ngResource]を削除するとすべて正常に動作します。なぜ??

+1

を注入すべきコントローラやサービスのファイルでは、バージョンの互換性が原因です。 Angular ** 1.6.6 **を使って作業しているなら、* 1.4.4 *ではなくngResource ** 1.6.6 **で作業する必要があります。 https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular-resource.js – Zooly

答えて

0

「ToDo」モジュールを複数回定義しています。あなただけ

var ToDo = angular.module('ToDo'); 

そのモジュールを取得する必要があり、MAINAPPであなたも最後の点に関してはngResource

var ToDo = angular.module('ToDo', [ 'ui.router', 'ngResource']); 
関連する問題