Backbone.js在解析期间检测PUT,POST,GET,DELETE,PATCH

时间:2015-06-29 20:20:00

标签: javascript rest backbone.js

这总体上是一个具体的问题,但通常我想知道所有可能性是否实际上是可能的。

目前我正在尝试"检测"当模型/集合运行它的.save()函数时,从parse动作说出PUT / POST。我的主要用例是当用户触发保存时我想要显示"成功"或"错误"消息分别。但只有在保存即PUT或POST时。但是,我尝试的所有内容都会在最初获取数据时显示任一消息。

任何人都知道如何在不侵入主干方法的情况下妥善对待这个问题?

1 个答案:

答案 0 :(得分:0)

我真的不了解用例不做的事情:

onSaveEvent:
    this.model.save().done(..).fail(..)

(因为你倾向于知道模型已经存在,因此它将是一个put或patch)

无论如何save使用sync字符串调用method作为第一个arg:

var methodMap = {
    'create': 'POST', <-- this
    'update': 'PUT',  <-- this
    'patch':  'PATCH',  <-- this
    'delete': 'DELETE',
    'read':   'GET'
};

如果模型是新的(它没有id),它只会执行POST。 Backbone使用isNew方法,因此:

if (!model.isNew()) {
  // it's one you're interested in
}

这是回答你的问题还是我误解了?