0

Backbone.js で最も基本的なものを実行しようとしていますが、どういうわけか失敗します。URLモデルをサーバーに保存するために作成したコード。

urlToAdd.set({url: urlBody.value, tags:tagsToAdd});
                urlToAdd.save({
                    success:function(){
                        console.log('it works');
                    }
                });

私のphpページにデータを正常に送信しますが、成功イベントを機能させることができません。私はどこで間違っていますか?注意深く観察しましたが、何も見つかりませんでした。

ここに私のモデル定義があります:(残念ながら私はバックボーン初心者なので、チュートリアルをチェックしてこれを適用しましたが、url関数のコードが必要かどうかわかりません

var URLWithTags=Backbone.Model.extend({
            initialize:function(){
                console.log('URL object has been initialized');
            },
            defaults:{
                url:'not defined',
                tags:[]
            },
            validate:function(attributes){
            //console.log(attributes.tags[0].length);
                /*if(attributes.tags[0].length<1)
                    return "You should create at least one tag";*/
            },
            urlRoot:'/URLTags/manage.php',
            url:function(){
                var base = this.urlRoot || (this.collection && this.collection.url) || "/";
                console.log("Base has been produced");
                if(this.isNew())
                    return base;

                return base+"?id="+encodeURIComponent(this.id);
            },
        });
4

1 に答える 1

2

save 関数を呼び出すときは、Save をオブジェクトの 2 番目の引数にする必要があります。ドキュメントを読んでください。または、よくコメントされた、短くて読みやすいソースを読んでください。

urlToAdd.save(null,{success:function(){console.log('it works')}});

ドキュメントによると:

savemodel.save([attributes], [options]) ;

それで :

urlToAdd.save({},{success:successCallback , error:errorCallback}); 

編集

例:

    var Car,yukon,$target ;
    Object.prototype.toString = function(){
        return JSON.stringify(this);
    };

    Car = Backbone.Model.extend({
        url:"/echo/json"
    });
    yukon= new Car({"color":"red","brand":"GM"});
    $target = $("#target");

    $target.append("describe yukon :",yukon.toString(),"<br/>");

    yukon.save({},
{
success:function(o){$target.append("save success <br/>",o.toString())},
error:function(e){$target.append("error",e)}
}
); 

$target は、ターゲットの ID を持つ div を表す jquery オブジェクトです。

于 2012-05-19T17:52:28.390 に答える