我在提交表单后更改页面的URL时遇到问题.
这是我的应用程序的流程:
$scope.onAfterSubmit设置位置的函数.问题是在设置位置后没有任何反应.我也试过设置位置参数/......不.我也试过不提交表格.什么都行不通.
我已经测试过以查看代码是否达到了onAfterSubmit函数(它的功能).
我唯一想到的是,函数的范围以某种方式被改变(因为它从一个指令中被调用),但是onAfterSubmit如果范围发生变化,它又如何调用呢?
这是我的代码
var Ctrl = function($scope, $location, $http) {
$http.get('/resources/' + $params.id + '/edit.json').success(function(data) {
$scope.resource = data;
});
$scope.onAfterSubmit = function() {
$location.path('/').replace();
};
}
Ctrl.$inject = ['$scope','$location','$http'];
Run Code Online (Sandbox Code Playgroud)
有人可以帮帮我吗?
我在我的应用程序中使用angularjs http服务.我在网站上注意到了这一点
如果AJAX调用成功(服务器发回200和209之间的HTTP代码),则执行传递给success()函数的函数.如果AJAX调用失败(除了重定向之外的所有其他代码),则执行传递给error()方法的函数.
显然,重定向状态代码不是成功的一部分,也不是错误回调.那么我们如何处理重定向?
这是我的脚本所做的,使用http get从服务器获取数据.如果会话到期,则服务器返回302状态代码.我应该抓住该状态代码然后将页面重定向到登录.
app.controller('GraphController', function($scope, $http, localStorageService, $interval) {
$scope.GraphData = [{"key":"in","values":[]},{"key":"out","values":[]}];
$scope.pollStats = function() {
$http.get('/statistics/getStat').success(function(lastData, status, headers) {
if (status==302) {
//this doesn't work
//window.location=headers('Location');
//this doesn't work either
window.location.replace(headers('Location'));
}else if (status==200) {
...processData
}
});
};
});
Run Code Online (Sandbox Code Playgroud)
显然我的脚本不会工作,因为成功回调无法处理重定向.那么我们该如何应对呢?