我试图通过发送一个php文件的帖子来实现一个简单的认证服务,我需要它在我的ng-view
上加载部分主页当它成功的时候。
这是我尝试过的:
function loginCtrl($scope, $http, $location){
$http.post(url,data).success(function(data){
$location.path('/home');
});
}
导致我的url更改,但ng-view
不更新。它会在我手动刷新页面时更新。
(路由已在$routeProvider
上正确配置,我测试了使用独立函数重定向,而不是作为回调,它可以工作)
我也尝试过将$location.path('/home')
定义为一个函数,然后在回调中调用它,但仍然不起作用。
我做了一些研究,发现一些文章说当使用另一个第三方插件时会发生这种情况,我只是在加载angular.js
任何关于学习资料的见解或指点都会很棒。
发布于 2013-01-18 04:42:01
以下是本文http://www.yearofmoo.com/2012/10/more-angularjs-magic-to-supercharge-your-webapp.html#apply-digest-and-phase中的changeLocation示例
//be sure to inject $scope and $location
var changeLocation = function(url, forceReload) {
$scope = $scope || angular.element(document).scope();
if(forceReload || $scope.$$phase) {
window.location = url;
}
else {
//only use this if you want to replace the history stack
//$location.path(url).replace();
//this this if you want to change the URL and add it to the history stack
$location.path(url);
$scope.$apply();
}
};
发布于 2013-05-27 17:49:39
我正在做下面的页面重定向(从登录到主页)。我还必须将user对象传递到主页。所以,我使用的是windows本地存储。
$http({
url:'/login/user',
method : 'POST',
headers: {
'Content-Type': 'application/json'
},
data: userData
}).success(function(loginDetails){
$scope.updLoginDetails = loginDetails;
if($scope.updLoginDetails.successful == true)
{
loginDetails.custId = $scope.updLoginDetails.customerDetails.cust_ID;
loginDetails.userName = $scope.updLoginDetails.customerDetails.cust_NM;
window.localStorage.setItem("loginDetails", JSON.stringify(loginDetails));
$window.location='/login/homepage';
}
else
alert('No access available.');
}).error(function(err,status){
alert('No access available.');
});
这对我很管用。
发布于 2016-03-24 21:52:10
我没有使用success
,而是将其更改为then
,它就可以工作了。
代码如下:
lgrg.controller('login', function($scope, $window, $http) {
$scope.loginUser = {};
$scope.submitForm = function() {
$scope.errorInfo = null
$http({
method : 'POST',
url : '/login',
headers : {'Content-Type': 'application/json'}
data: $scope.loginUser
}).then(function(data) {
if (!data.status) {
$scope.errorInfo = data.info
} else {
//page jump
$window.location.href = '/admin';
}
});
};
});
https://stackoverflow.com/questions/14301524
复制相似问题