即使在后端修改对象,骨干模型也保持不变

时间:2014-04-07 09:55:21

标签: spring backbone.js

我有一个骨干模型。我将以下属性添加到模型

   model.set('x',x);
   model.set('y',y);
   model.set('z',z);

并且我称之为model.save ....

在后端,我所做的是为brandDTO设置更多属性

但我所看到的是错误回调模型中没有错误属性

 app.Model.BrandModel = Backbone.Model.extend({
               url : '/brand/cu'
             });
             var brand = new app.Model.BrandModel();
     brand.save(null, {
                success : function(model, response) {
                },
                error : function(model, response) {
                            }

         });



@RequestMapping(value = "/brand/cu", method = RequestMethod.POST, produces = "application/json")
@ResponseBody
public BrandDTO createBrand(@RequestBody BrandDTO brandDTO,
        HttpServletResponse response) {

 brandDTO.setErro("error", error)

错误回调模型中没有此错误字段。 我不确定我是否正确......

1 个答案:

答案 0 :(得分:0)

您正在思考,只需要在客户端和服务器上进行安排。 我看到你正在使用Java,这是SpringMvc吗?

首先,您应该序列化您的回复:

在服务器上:

1.)创建一个名为SerializedResponse的对象/类,它具有“数据”,“成功”,“异常”属性。

2.)然后你可以在创建品牌业务逻辑上包装一个try {} catch {},如果成功,则将“success”设置为true,如果它不能为“false”,如果是一个异常,则放置它在异常对象中。

请注意,即使您的逻辑中存在错误,只要执行了操作并且您已收到响应,并且除非http状态代码不是200,否则您将始终获得成功,这将由jqXhr对象,所以你可以从那里处理回调,意思是:

success : function(model, response) {
  var data = JSON.parse(response);
  if(data.success){
   //ALL OK     
     }   
  else {
   //Fail
    }
  }, 
  error: function(){
  //Error 
  }