当模型执行ajax请求时,用于观察的模式

时间:2015-09-24 04:30:20

标签: javascript angularjs

我的Item模型有deleterename等等。这些都是异步方法,所以当一个人被执行时,我会在我的视图中显示微调器。由于Item模型上有许多异步方法,我不得不总是在我的控制器中这样做:

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;
});

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

1 个答案:

答案 0 :(得分:1)

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

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