如何在模型更新后调用“{Model.Foo}已更新”?

时间:2011-09-30 12:57:47

标签: javascript javascriptmvc

我有一个javascriptMVC模型

/**
 * @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'来测试没有服务器后端的应用程序,它可以毫无问题地工作。

感谢。

2 个答案:

答案 0 :(得分:0)

该代码应该有效。您从服务器返回什么回复?您应该使用您更新的对象返回JSON响应。

答案 1 :(得分:0)

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