Как изменить вид с контроллера в угловых js?
Я новичок в угловой JS и пытаюсь работать с ng-view
а также ngRoute
директивы.
У меня есть loginPage.html, в котором у меня есть код для кнопки входа, записанный следующим образом
<button class="button button-block" ng-click="login()">Log In</button>
и после нажатия кнопки будет выполнена функция входа в loginController, и мой контроллер будет выглядеть следующим образом:
var App = angular.module('App', ['ngRoute']);
App.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/', {
templateUrl: 'loginPage.html',
controller: 'loginController'
}).
when('/home', {
templateUrl: 'homePage.html',
controller: 'homeController'
});
}]);
App.controller('loginController', ['$scope', '$http', '$location', function($scope, $http) {
console.log("Hello from login controller");
$scope.login = function() {
//console.log($scope.user);
$http.post('/login', $scope.user).success(function(response) {
if(response.status == "true")
//if the response is true i want to go to homepage.html.
else
$scope.error="Invalid login! Please try again";
$scope.user.email="";
$scope.user.password="";
});
};
}]);
Если response.status==true
тогда я хочу изменить свой взгляд на /home
, Может кто-нибудь сказать, пожалуйста, как это сделать?
Благодарю вас.
3 ответа
Решение
if(response.status == "true")
$location.path("/home");
Не забудьте добавить $location
к параметрам вашего контроллера, как это:
['$scope', '$http', '$location', function($scope, $http, $location)...
Кроме того, оберните else
оператор в скобках, или только первая строка находится внутри оператора:
else {
$scope.error="Invalid login! Please try again";
$scope.user.email="";
$scope.user.password="";
}
Использование $location.path
:
if(response.status == "true") {
$location.path('/home');
}
Кроме того, вы пропустили добавление $location
в списке зависимостей контроллера:
function($scope, $http, $location)