2011-09-30 53 views
0

我有一个javascriptMVC型号如何在模型更新后调用“{Model.Foo}更新”?

/** 
* @class Hzfrontend.Models.Warmwasser 
* @parent index 
* @inherits jQuery.Model 
* Wraps backend warmwasser services. 
*/ 
$.Model('Hzfrontend.Models.Warmwasser', 
/* @Static */ 
{ 
    findAll: "/api/warmwasser", 
    findOne : "/api/warmwasser/{id}", 
    update : "/api/warmwasser/{id}" 
}, 
/* @Prototype */ 
{ 
    update : function(attrs, success, error){ 
     $.ajax({ 
      type: 'PUT', 
      url:"/api/warmwasser/"+this.id, 
      data: $.toJSON(this), 
      success: success, 
      error: error, 
      dataType: "json"}); 
    } 
}); 

和控制器:后

$.Controller('Hzfrontend.Warmwasser.List', 
/** @Static */ 
{ 
    defaults : {} 
}, 
/** @Prototype */ 
{ 
    init : function(){ 
     this.element.append(this.view('init',Hzfrontend.Models.Warmwasser.findAll())) 
    }, 
    '.waterTemperature change': function(el){ 
      var mod = el.closest('.warmwasser').model(); 
      mod.attr('waterTemperature', el.val()); 
      mod.update(); 
      steal.dev.log("update waterTemperature"); 
    }, 
    "{Hzfrontend.Models.Warmwasser} updated" : function(Warmwasser, ev, warmwasser){ 
     warmwasser.elements(this.element) 
       .html(this.view('warmwasser', warmwasser)); 
     steal.dev.log("updated"); 
    } 
}); 

更新完成我想要调用控制器更新回调。这个怎么做? 如果我使用./fixtures/fixtures.js'来测试没有服务器后端的应用程序,它没有任何问题。

谢谢。

回答

0

该代码应该工作。你作为服务器的回应返回什么?您应该返回一个JSON响应与您更新的对象。

0

你不应该有一个原型更新方法。

+0

好的,但如何发送请求作为json没有“$ .toJSON(this)”在原型? – chriszero

+0

您可以覆盖静态更新来执行此操作。 –