2012-05-13 8 views
2

私はBACKBONE.JSと協力し、以下の環境設定するために学んでいる:正しいメソッドが呼び出されたサーバー上に「index.phpを」でBACKBONE.JS同期 - PHPのリターン

/* define the model */ 
var Login = Backbone.Model.extend({ 
    url:"api/index.php/login/" 
}); 

/* the following code is contained in a view method */ 

var login = new Login({ 
    email: $("#email").val(), 
    pass: $("#pass").val() 
}); 

var result = Backbone.sync('create',login); 
alert(JSON.stringify(result)); 

をし、データは正しく利用可能です。

アラートはちょうど出力:{"readyState":1}

が今私の質問は:どのようなサーバー(index.phpを)復帰/出力がクライアントに答えるためにすべき? データをクライアントに送り返したいと思います。それを表示します。

答えて

2

Backbone.sync()は、の非同期の操作であるです。 sync()は有用ではないリターン何もしないので、あなたは

var result = Backbone.sync('create', login); 

を行うことはできません。要求をサーバーに送信し、サーバーの応答が到着する直前にすぐに戻ります。

options parameterを使用し、そこにsuccesserrorコールバック関数を配置します。サーバは、例えば、401 Unauthorized応答を返した場合

Backbone.sync('create', login, { 
    success: function() { 
    // whatever you want to do when login succeeds 
    }, 
    error: function() { 
    // display an error message 
    } 
}); 

errorコールバックが実行されることになります。サーバが200 OKを返すときにsuccessコールバック。

これらのコールバックの使用方法や使用できるその他のオプションについては、jQuery.ajax()のドキュメントをご覧ください。

+1

この非常に基本的な誤解を訂正していただきありがとうございました – gro

関連する問題