我有 Item
模型,其中包含 delete
、rename
等方法。这些是异步方法,因此在执行时我在我的观点上显示微调器。由于 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。
关于javascript - 当模型执行ajax请求时使用什么模式来观察,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32753387/