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

app.config(['$routeProvider', function($routeProvider) {  
    $routeProvider. 
    when('/success', { 
    templateUrl: 'success.html', 
    controller: 'sucCtrl' 


    }). 
    otherwise({ 
    redirectTo: '/index' 
    }) 
}]) 


app.controller('validateCtrl', function($scope, $http, $location) { 

    $scope.submit = function(user,password) { 
    //for local storage validation 

    $http.get('credentials.json').then(function(response) { 
     $scope.credentials = response.data; 

     if((user === $scope.credentials.username) && (password === $scope.credentials.password)){ 
     alert("ok"); 
     $location.path('/success'); 
     } 

     else{ 
     alert("nit "); } 



    });  


    }; 

}) 

app.controller('sucCtrl',['$scope', function($scope) { 
    alert("succs"); 

}]); 

Это может быть новичок. Я пытаюсь проверить мою регистрационную форму и перенаправить на success.html на успех. Но я не могу перейти на следующую страницу. Я попытался использовать $ location.path ('/ success'). здесь рабочий образец в plunker .. http://plnkr.co/edit/0v7njznHdtwgpaG2NfwA?p=previewпереадресация страницы входа в угловой валидации

ответ

2

Вы пропустили написать ng-view директиву, чтобы получить изменения маршрута для отображения в представлении. Кроме того, вы испорчены структурированием вашей страницы html. См. Ниже комментарии, которые помогут вам сделать работу и улучшить ее.

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

Кроме того, вы должны загрузить форму HTML только из маршрута, я хотел бы предложить вам добавить еще один маршрут к config, который будет говорить о /login показать (регистрационную форму) form.html

Config

app.config(['$routeProvider', function($routeProvider) {  
    $routeProvider. 
    when('/success', { 
    templateUrl: 'success.html', 
    controller: 'sucCtrl' 
    }) 
    .when('/login', { 
    templateUrl: 'form.html', 
    controller: 'validateCtrl' 
    }). 
    otherwise({ 
    redirectTo: '/login' 
    }) 
}]) 

Markup

<body> 
    <div ng-view></div> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
    <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.js"></script> 
    <script src="login.controller.js"></script> 
</body> 

Ваш success.html должен быть частичным, он не должен иметь ссылки скрипт снова к нему они были загружены из индексной страницы только

success.html

<div> 
    Success Message 
</div> 

Working Demo

+0

Здравствуй. Спасибо за ваш ответ. Я попытался добавить эти изменения. Но при добавлении ng-view мой плукерщик рушится. Можете ли вы, пожалуйста, помогите мне – user5304396

+0

@ user5304396 Похоже, что я поместил неправильную ссылку на plunkr. Позвольте мне добавить правильный один. Дайте мне минуту –

+0

@ user5304396 Посмотрите на udpated plunkr link Спасибо :) –