如何在使用$resources时保留UI状态
AngularJS - How to retain UI state when using $resources
在我的应用中,用户可以创建/删除项目。我使用$resources,它非常有效。但是我想在请求正在进行时显示一个加载屏幕。
// show loading-screen
// ...
Item.destroy({'id': item.id}, function( response ){
// handle success
// ...
// hide loading-screen
}, function( error ){
// handle error
// ...
// hide loading-screen
});
但是,与其每次编写资源调用时显示/隐藏加载屏幕,我更愿意配置资源模块,以便在资源加载数据时自动调用显示/隐藏加载屏幕。
是否有办法配置资源模块来实现这一点?
您可以使用$http.pendingRequests
数组来查看是否有一些待处理的请求。
来自angular-seed项目的例子:https://github.com/rpeterson/angular-seed/blob/master/client/src/common/services/httpRequestTracker.coffee:
angular.module('services.httpRequestTracker', [])
.factory('httpRequestTracker', ['$http',
function($http) {
var httpRequestTracker = {};
httpRequestTracker.hasPendingRequests = function() {
return $http.pendingRequests.length > 0;
};
return httpRequestTracker;
}
]);
然后你只需要用ng-show="httpRequestTracker.hasPendingRequests"
创建一个专用的加载指令,例如
请注意,使用此解决方案,您只知道是否有一个待处理请求,而不知道是哪个请求(如果您的页面上有多个ajax请求,可能会很棘手)
相关文章:
- 分派点击事件并保留击键修饰符
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- jQuery UI自动完成突然停止工作
- 如何使用skip参数使用angular ui引导进行服务器端分页
- AngularJS UI路由器不能像ng路由器那样工作
- 我可以更改剑道UI网格吗's的外键值
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 在可排序的JQuery UI列表中至少保留一个项目
- 如何在更改数据源后保留 UI 网格选择
- 角度UI网格无限滚动/分页不保留以前的数据
- 使用jQuery UI的选择菜单保留图片
- 没有标题栏的jQuery UI对话框,但保留关闭按钮
- 角度 ui 路由器:为孩子保留相同的 ui 视图
- 先前的状态视图不会保留在带有自定义模态url的打开UI引导模态的后台
- 角度 ui 类型提前建议 + 如果没有结果,则保留
- 剑道UI输入焦点-在选择和Ajax调用之后,下拉列表保留焦点
- 通过angular和ui-router在深层状态中保留/传递参数
- 如何在使用$resources时保留UI状态
- UI路由器:在$stateChangeError之后保留url(解析依赖项时)
- 尝试保留筛选器状态时键入错误-Kendo UI网格