如何在通过AngularJS重定向到文章时重新加载文章内容
How to reload content of an article when redirected to it through AngularJS?
我正在为我的一个项目使用Django和AngularJS,当我更新一篇文章时,我已经将其设置为重定向到this
文章(即表单提交)。问题是,即使后端的一切都更新得很好,但前端的情况却不一样。如果我在浏览器上点击f5
(刷新),我会得到新信息,如果没有,内容仍然保持不变。
更新控制器
var EditCtrl = function($scope, $stateParams, $http, Revision, $location) {
$http.get('http://api.local/api/v1/articlerevision/' + $stateParams.id).success(function(data) {
$scope.revision = data;
});
$scope.update = function() {
Revision.update($scope.revision);
$location.path('/wiki/revision/'+$stateParams.id);
};
};
视图控制器
var ViewCtrl = function($scope, $stateParams, $http) {
$http.get('http://api.local/api/v1/articlerevision/' + $stateParams.id).success(function(data) {
$scope.revision = data;
});
$scope.toggle = false;
$scope.comments = false;
};
是否有某种刷新命令可以放在视图控制器中?
看起来像是一个同步化问题:重定向到修订视图时,更新尚未完成。
尝试更改为类似的内容:
var EditCtrl = function($scope, $stateParams, $http, Revision, $location) {
$http.get('http://api.local/api/v1/articlerevision/' + $stateParams.id).success(function(data) {
$scope.revision = data;
});
$scope.update = function() {
Revision.update($scope.revision, /* success */ function(data) {
$location.path('/wiki/revision/'+$stateParams.id);
});
};
};
这似乎是由于调用的异步性质造成的问题。您的编辑控制器似乎正在进行2次异步调用
$http.get('http://api.local/api/v1/articlerevision/' + $stateParams.id).success(function(data) {
$scope.revision = data;
}); //This call is async
$scope.update = function() {
Revision.update($scope.revision); //Is this async?
$location.path('/wiki/revision/'+$stateParams.id); //Does this navigation happen before update is complete?
};
相关文章:
- 数据表 AJAX 筛选器重新加载数据
- 如何在新加载的页面上执行(下拉)操作
- 根据上一个选项卡的选择器重新加载选项卡
- 获得“中止,因为不接受 0”并使用反应热加载器重新加载整页
- 咕噜咕噜的手表:实时加载重新加载落后 1 步....
- 如何为新加载的元素提供JQuery UI工具提示
- 如何在新加载的页面上使用相同的JavaScript代码(通过重定向)
- 使用PHP或Javascript检测页面刷新或新加载
- 砌体重新加载&reloadItems不起作用
- 如何使javascript计时器重新加载
- 如何获取新加载的图像's width / naturalWidth
- 列出并调用firefox扩展中新加载的选项卡中的js函数
- 旋转器重新加载图像似乎在覆盖层后面
- AJAX调用后,新加载的CSS选择器对jQuery.ech()不可用
- jQuery砌体-砌体重新加载后调用方法
- 如何向所有查看器重新加载页面
- 如何打开子浏览器窗口,然后在新加载的子浏览器页面上执行脚本以单击其中的链接
- 如何选择新加载 html 的元素
- 在 jQuery 的 ajax.load() 之后,无法将元素附加到新加载的内容中
- 我怎么能有一个花哨的盒子一样的弹出体加载,但与cookie不连续加载重新加载