2016-12-16 4 views
1

Я хочу использовать ngroute модуль для маршрутизации мой приложений с различными темами, в одной и той же странице, используя этот пример:Угловые ngroute: контроллеры работы Doesnt в

<html> 
 
    
 
    <head> 
 
     <title>Angular JS Views</title> 
 
     <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> 
 
     <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular-route.min.js"></script> 
 
    </head> 
 
    
 
    <body> 
 
     <h2>AngularJS Sample Application</h2> 
 
     <div ng-app = "mainApp"> 
 
     <p><a href = "#addStudent">Add Student</a></p> 
 
     <p><a href = "#viewStudents">View Students</a></p> 
 
     <div ng-view></div> 
 
      
 
     <script type = "text/ng-template" id = "addStudent.htm"> 
 
      <h2> Add Student </h2> 
 
      {{message}} 
 
     </script> 
 
      
 
     <script type = "text/ng-template" id = "viewStudents.htm"> 
 
      <h2> View Students </h2> 
 
      {{message}} 
 
     </script> 
 
     </div> 
 
     
 
     <script> 
 
     var mainApp = angular.module("mainApp", ['ngRoute']); 
 
     mainApp.config(['$routeProvider', function($routeProvider) { 
 
      $routeProvider. 
 
      
 
      when('/addStudent', { 
 
       templateUrl: 'addStudent.htm', 
 
       controller: 'AddStudentController' 
 
      }). 
 
      
 
      when('/viewStudents', { 
 
       templateUrl: 'viewStudents.htm', 
 
       controller: 'ViewStudentsController' 
 
      }). 
 
      
 
      otherwise({ 
 
       redirectTo: '/addStudent' 
 
      }); 
 
     }]); 
 
      
 
     mainApp.controller('AddStudentController', function($scope) { 
 
      console.log("adssadsd"); 
 
      $scope.message = "This page will be used to display add student form"; 
 
     }); 
 
      
 
     mainApp.controller('ViewStudentsController', function($scope) { 
 
      $scope.message = "This page will be used to display all the students"; 
 
     }); 
 
\t \t \t 
 
     </script> 
 
     
 
    </body> 
 
</html>

В этом примере пути, отличному темы в одних и тех же страницах: enter image description here

enter image description here

Таким образом. Попытка его в моем приложении: HTML файл:

<!DOCTYPE html> 
 
<!-- saved from url=(0066)https://hackerstribe.com/guide/IT-bootstrap-3.1.1/examples/signin/ --> 
 
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 
     <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.js"></script> 
 

 
    
 
     <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular-route.min.js"></script> 
 
    
 
    <script type="application/javascript"></script> 
 
    <script src="scripts/login-controller.js"></script> 
 
    <script src="scripts/rest-services.js"></script> 
 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <meta name="description" content=""> 
 
    <meta name="author" content=""> 
 
    <link rel="shortcut icon" href="images/puzzle.png" /> 
 

 
    
 

 

 
    
 
    <title>Login</title> 
 

 
    <!-- Bootstrap core CSS --> 
 
    <link href="./styles/bootstrap.min.css" rel="stylesheet"> 
 

 
    <!-- Custom styles for this template --> 
 
    <link href="./styles/signin.css" rel="stylesheet"> 
 

 
    <!-- Just for debugging purposes. Don't actually copy this line! --> 
 
    <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]--> 
 

 
    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> 
 
    <!--[if lt IE 9]> 
 
     <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> 
 
     <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> 
 
    <![endif]--> 
 
    </head> 
 

 
    <body ng-app="StaffManagement" ng-controller="LoginController" ng-fa> 
 

 
    <div class="container"> 
 
<script type = "text/ng-template" id = "addStudent.htm"> 
 
      <h2> Add Student </h2> 
 
      {{message}} 
 
     </script> 
 
      
 
     <script type = "text/ng-template" id = "viewStudents.htm"> 
 
      <h2> View Students </h2> 
 
      {{message}} 
 
     </script> 
 
     <form class="form-signin" role="form" ng-controller="LoginController" ng-submit="submitCredentials()" novalidate> 
 
     <h2 class="form-signin-heading">Hai bisogno di autenticarti</h2> 
 
     <input type="email" class="form-control" placeholder="Email address" required="" autofocus="" id="email" ng-model="staffLoginForm.email"> 
 
     <input type="password" class="form-control" placeholder="Password" required="" id="password" ng-model="staffLoginForm.pass"> 
 
     <label class="checkbox"> 
 
      <input type="checkbox" value="remember-me"> Ricordami 
 
     </label> 
 
     <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button> 
 
     </form> 
 

 
    </div> <!-- /container --> 
 

 

 
    <!-- Bootstrap core JavaScript 
 
    ================================================== --> 
 
    <!-- Placed at the end of the document so the pages load faster --> 
 
    
 
     
 
    
 
     
 

 
</body></html>

JS связанный файл:

//'use strict'; //questo mi da informazione sull'errore 
 

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

 
app.controller("LoginController", function($scope, $http, restService) { 
 
    $scope.stafflogins = []; 
 
    $scope.staffLoginForm = { 
 
     email: "", 
 
     pass: "" 
 
    }; 
 
    $scope.tokenStaffForm = { 
 
     idtokenstaff: -1,  
 
     tokenstaff: "" 
 
    }; 
 
    $scope.staffForm = { 
 
     idstaff : -1,  
 
     staffType: { 
 
      idstaffType: -1, 
 
      type: "" 
 
     }, 
 
     name: "", 
 
     surname: "", 
 
     birthDate: "", 
 
     phone: "", 
 
     gender: true, 
 
     working: true, 
 
     staffLogin: { 
 
      idstaffLogin: -1, 
 
      email: "", 
 
      pass: "" 
 
      } 
 
    }; 
 
    
 
    
 
    
 
    //8njae3j4b54fpoapftc8aofbfs 
 
    
 
    //admin: l5qsngh3v9a5f2v9p55ar4h083 
 
    $scope.submitCredentials= function() { 
 
     restService.login($scope.staffLoginForm, _logsuccess, _logerror); 
 
     
 
     //$location.url('edit_employee.html'); 
 
//  console.log($scope.staffLoginForm); 
 
     /* $http({ 
 
      method : 'POST', 
 
      url : 'http://localhost:8080/FoodDrinkDispener/rest/tokenstaff', 
 
      data : angular.toJson($scope.staffLoginForm), 
 
      }).then(function successCallback(response) { 
 
        if (typeof response.data === 'object'){ 
 
         _logsuccess(response) 
 
         return response.status; 
 
        } 
 
        else 
 
         _logerror(response); 
 
        },function (response) { 
 
        console.log($scope.tokenStaffForm); 
 
         _logerror(response); 
 
        } 
 
        );*/ 
 
      
 
       } 
 
    
 

 
       
 
    /*   
 
    function _SetToken(CurrentToken) { 
 
     sessionStorage.setItem("token", (CurrentToken === null) ? null : JSON.stringify(CurrentToken)); 
 
     //console.log(CurrentToken);  
 
    } 
 
     */ 
 
    function _logsuccess(response) { 
 
     console.log("Loggato correttamente"); 
 
     console.log(response.status); 
 
     var CurrentToken = response.data; 
 
     // _SetToken(CurrentToken);           
 
    } 
 
      
 
    function _logerror(response) { 
 
     console.log("Login fallito"); 
 
     console.log(response.status); 
 
     // _SetToken(null);          
 
    } 
 
     
 

 
     /* $http({ 
 
      method : 'GET', 
 
      url : 'http://localhost:8080/FoodDrinkDispener/rest/stafflogin/byemail/'+$scope.staffLoginForm.email 
 
      }).then(function successCallback(response) { 
 
     $scope.stafflogins = response.data; 
 
     }, function errorCallback(response) { 
 
     console.log(response.statusText); 
 
     }); 
 
     if(MD5($scope.stafflogins.pass)==$scope.staffLoginForm.pass)*/ 
 
      
 
    
 
    
 
    
 

 
    // console.log(sessionStorage.getItem.toString); 
 
    }); 
 

 
app.config(['$routeProvider', function($routeProvider) { 
 
      $routeProvider. 
 
      
 
      when('/sessionexpired', { 
 
       templateUrl: 'addStudent.htm', 
 
       controller: 'AddStudentController' 
 
      }). 
 
      
 
      when('/viewStudents', { 
 
       templateUrl: 'viewStudents.htm', 
 
       controller: 'ViewStudentsController' 
 
      }). 
 
      
 
      otherwise({ 
 
       redirectTo: '/addStudent' 
 
      }); 
 
     }]); 
 

 
app.controller('AddStudentController', function($scope) { 
 
     console.log("ciao"); 
 
      $scope.message = "This page will be used to display add student form"; 
 
     }); 
 
      
 
     app.controller('ViewStudentsController', function($scope) { 
 
       console.log("ciao"); 
 
      $scope.message = "This page will be used to display all the students"; 
 
     });

В JS файл я кладу контроллеры, и мой config:

app.config(['$routeProvider', function($routeProvider) { 
 
      $routeProvider. 
 
      
 
      when('/sessionexpired', { 
 
       templateUrl: 'addStudent.htm', 
 
       controller: 'AddStudentController' 
 
      }). 
 
      
 
      when('/viewStudents', { 
 
       templateUrl: 'viewStudents.htm', 
 
       controller: 'ViewStudentsController' 
 
      }). 
 
      
 
      otherwise({ 
 
       redirectTo: '/addStudent' 
 
      }); 
 
     }]); 
 

 
app.controller('AddStudentController', function($scope) { 
 
     console.log("ciao"); 
 
      $scope.message = "This page will be used to display add student form"; 
 
     }); 
 
      
 
     app.controller('ViewStudentsController', function($scope) { 
 
       console.log("ciao"); 
 
      $scope.message = "This page will be used to display all the students"; 
 
     });

Я также судимый к console.log("ciao");, но когда я пытаюсь этот URL: файл: /// C:/Users/Giacomo% 2/Desktop/PROGETTO% 20mainetti/доказать% 20angular/fddWebapp /login.html#/viewStudents ничего не отображается, ни console.log: enter image description here

Где проблема? Почему мои контроллеры не работают?

+0

В вашей конфигурации «config» отсутствует маршрут. Значение по умолчанию - перейти в/addStudent, но нет маршрута addStudent. –

ответ

2

Я вижу несколько вопросов:

  1. Вы не имеют <div ng-view></div> тег на странице HTML
  2. Вы должны перенаправлять '/addStudent', но вам не этот маршрут настроен (я думаю '/sessionexpired' должен быть переименован в него)
  3. Вы уже объявили ng-controller="LoginController", я думаю, что последнего достаточно.
+0

хорошо, я тоже пытаюсь /session .. как я могу настроить тг-просмотр тега? –

+0

Невероятно, с ng-view это работает !!!!!!! Большое спасибо! –