如何在 angular js 中从控制器更改视图?
How to change the view from controller in angular js?
我是 angular 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
。有人可以告诉我该怎么做吗?
谢谢。
使用$location.path
:
if(response.status == "true") {
$location.path('/home');
}
此外,您错过了在控制器依赖项列表中添加 $location
:
function($scope, $http, $location)
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="";
}
if(response.status == "true")
$location.path("/home");
我是 angular 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
。有人可以告诉我该怎么做吗?
谢谢。
使用$location.path
:
if(response.status == "true") {
$location.path('/home');
}
此外,您错过了在控制器依赖项列表中添加 $location
:
function($scope, $http, $location)
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="";
}
if(response.status == "true")
$location.path("/home");