如何在backbone.js回调中从模型中分离一些响应数据

时间:2012-01-22 16:33:48

标签: javascript jquery ajax backbone.js

我正在使用backbone.js开始一个项目,如你所知,我的主要问题是找出一个好的编码模式。但是,我想知道如何处理来自ajax回调(保存,销毁,获取)的消息的最佳方法,例如在成功上而不在模型上设置所有内容

我想要做的是将一些数据与模型分开,并将其作为属性处理,例如在 model.save()回调json:

{ message: "Successful post", post: { id: 13, text: "test" } }

以下是代码:

post = new Post({..})
post.save({}, { 
  success: function(post, xhr) {
     data = jQuery.parseJSON(xhr.responseText)
     alert(data.message)
  }
})

有没有更好的方法来做,或者我必须离开属性?像:

{ message: "Successful post", id: 13, text: "test" }

1 个答案:

答案 0 :(得分:5)

您可以覆盖模型parse方法来拦截响应中的数据。

在您的情况下,您可能会遇到以下情况:

parse : function(resp, xhr) {
  alert resp.message;
  return resp.post;
},

因此,您可以在从服务器返回的JSON中保留相同的结构。在您的解析方法中,只要您提取表示模型数据的部分并从方法中返回它,就可以使用其他数据执行任何操作。