javascript - 当模型执行ajax请求时使用什么模式来观察

标签 javascript angularjs

我有 Item 模型,其中包含 deleterename 等方法。这些是异步方法,因此在执行时我在我的观点上显示微调器。由于 Item 模型上有许多异步方法,因此我被迫在 Controller 中始终这样做:

function delete() {
    isRequesting = true;
    item.delete().then(function() {
        isRequesting = false;
    }
}

function rename() {
    isRequesting = true;
    item.rename().then(function() {
        isRequesting = false;
    }
}

这些 requesting= 语句使我的代码变得困惑,而且还可能忘记指定它。 我还有一个带有许多异步方法的单例 fileNavigator,因此这里我使用事件来控制请求:

fileNavigator.on(FileNavigatorEvents.REQUESTING, function (event, requesting) {
    isRequesting = requesting;
});

并且在调用 fileNavigator 的异步方法时,我不再需要考虑 isRequesting。 我的问题是是否有任何类似的模式可以用于我的 Item 非单例实例?

最佳答案

你在使用$resource吗?我建议使用 Restangular,如果您使用 Restangular,它们有请求和响应拦截器来自动触发广播以显示和隐藏 Spinner。

看看这个:restangular: is it possible to have a progress bar ?

关于javascript - 当模型执行ajax请求时使用什么模式来观察,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32753387/

相关文章:

javascript - 重新组织 Bootstrap 布局 - 通过单击扩展 div 时的列排序

javascript - 草稿.js。如何从 ContentState 获取所有实体数据

javascript - div 元素的固定大小

angularjs - Angular js 指令中的后链接与预链接

javascript - 从 AngularJS 格式化指令监听父模型的变化

javascript - 如果没有其他函数链接到 promise ,则默认行为

angularjs - 模型绑定(bind) addonLeft.text Angular 正式

javascript - Angular/ meteor : Array is undefined

javascript - 使用 react.js 的进度条

javascript - 如何将同一行的 Label 和 Input 向右对齐?