2015-03-22 4 views
3

У меня есть следующий код. Все, что я пытаюсь сделать простым приложением для входа и панели. после успешного входа в систему пользователь может видеть панель мониторинга, для которой у меня есть два входа в систему и панель управления. Первоначальный логин-маршрут по умолчанию используется после успешного входа в систему, тогда я хочу перейти на маршрут панели управления, и соответствующий шаблон и контроллер должны загрузиться, но каким-то образом это не сработает. Мне нужна помощь, чтобы выяснить, что случилосьугловой js маршрут не работает

index.html

<html lang="en" ng-app="salesApp"> 
<body ng-controller="loginController"> 
    <form name="loginForm"> 
     <!--login form--> 
    </form> 
    <script src="./js/lib/angular.min.js"></script> 
    <script src="./js/lib/angular-route.min.js"></script> 
    <script src="./js/app/salesApp.js"></script> 
    <script src="./js/controller/loginController.js"></script> 
    <script src="./js/services/communicationService.js"></script> 

</body> 
</html> 

loginController.js

app.controller('loginController', function($scope, $http, communicationService, $location){ 
    $scope.isLoginFailed = false; 
    $scope.login= function(){ 
     $http.get("http://localhost:8080/login?username=" + $scope.user.username + "&password=" + $scope.user.password) 
     .success(function(response){ 
      if(response.sessionId && response.loginSucceeded){ 
       $location.path("/login"); 
      }else{ 
       $scope.isLoginFailed = true; 
      } 
     }); 
    } 
}); 

salesApp.js

var app = angular.module("salesApp", ['ngRoute']); 
app.config(['$routeProvider', 
     function($routeProvider) { 
      debugger; 
      $routeProvider. 
       when('/login', { 
        templateUrl: '../../login.html', 
        controller: 'loginController' 
       }). 
       when('/dashboard', { 
        templateUrl: '../../dashboard.html', 
        controller: 'dashBoardController' 
       }). 
       otherwise({ 
        redirectTo: '/login' 
       }); 
     }]); 

app.controller('dashBoardController', function($scope, $http, communicationService){ 
    $scope.sessionData = communicationService.getSessionData(); 
    $scope.isValidSession - $scope.sessionData.sessionId !== null ? true : false; 
    $scope.isValidSession = $scope.isValidSession && $scope.sessionData.loginSucceeded; 
}); 

dashboard.html

<html ng-app="salesApp"> 
<head> 
</head> 
<div ng-view ng-controller="dashBoardController"> 
<h1> 
demo 
</h1> 
</body> 

но ни Логин, ни панель маршрут увольняют, Может ли один помочь мне выяснить, что не так я делаю

ответ

6

Вам не придется повторять угловые ng-app и ng-view ng-controller="dashBoardController" директивы в частичных шаблонов. Изменение dashboard.html так:

<h1>demo</h1> 

Однако в index.html вы должны поставить ngView где-то. Она будет заполнена с заряженными шаблонами:

<div ng-view></div> 

Проверьте демо с фиксированным кодом:

Демо:http://plnkr.co/edit/Is3oXmkcRvDYkiAuvnCF?p=preview

+0

спасибо много. но все же у меня есть одно сомнение, если я поместил ng-view в тело вместе с ng-контроллером, наводнения на консоли с ошибкой. можете ли вы объяснить, почему это так. но если я поместил ng-view в div, то он отлично работает –

+0

На странице может быть только одна директива ngView. Вложенные представления не могут иметь внутренние ngView. – dfsq

+0

большое спасибо. понял. –

Смежные вопросы