0

バックボーンにcurrent_userを実装したいと思います。app.com/current_user.jsonにリクエストを送信してこれを行います

フェッチの非同期部分が機能していないようです

class App.Models.CurrentUser extends Backbone.Model
  url: '/current'
  defaults: 
    "created_at":"never",
    "email":"new",
    "id": "0",
    "updated_at":"always"

  current_user:() =>
    @fetch(
      succes:(response,status) =>
        console.log(status)
        return status
        )

コンソールログは、私が返そうとしているものを正確に出力しますが、関数自体は、この関数から取得したいjsonとしてresponseTextを持つオブジェクトを返します。

4

2 に答える 2

1

その原因は、モデルとサーバーの応答を返すだけです。これは、応答を処理するバックボーンソースからの部分です。fetch

  var success = options.success;
  options.success = function(resp, status, xhr) {
    if (!model.set(model.parse(resp, xhr), options)) return false;
    if (success) success(model, resp);
  };

したがって、モデルを返したい場合は、successメソッドに渡された最初のパラメーターを使用するだけです。

current_user:() =>
    @fetch(
      succes:(model,response) =>
        console.log(model)
        return model
        )
于 2012-09-25T21:08:03.277 に答える
0

これがあなたができることです:

current_user:() =>
  @fetch async: false
  @

そうすることで、フェッチを非同期にしないように指示していることに注意してください。つまり、フェッチ後の他のすべては、フェッチが完了したときにのみ処理されます。

于 2014-09-11T10:29:02.443 に答える