0

私は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 を使用してサーバー バックエンドなしでアプリをテストすると、問題なく動作します。

ありがとう。

4

2 に答える 2

0

プロトタイプの更新メソッドは使用しないでください。

于 2011-10-18T06:51:28.710 に答える
0

そのコードは機能するはずです。サーバーからの応答として何を返しますか? 更新したオブジェクトを含む JSON 応答を返す必要があります。

于 2011-10-10T02:40:28.517 に答える