0

我想为骨干实现 current_user。我通过向 app.com/current_user.json 发送请求来做到这一点

fetch 的异步部分似乎不起作用

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
        )

控制台日志准确地打印出我想要返回的内容,但是函数本身返回一个带有 responseText 作为 json 的对象,我想从这个函数中获取该对象。

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);
  };

因此,如果您想返回模型,只需使用传递给您的成功方法的第一个参数。

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

这是您可以执行的操作:

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

请注意,这样做是在告诉 fetch 不是异步的。这意味着只有在提取完成后才会处理提取后的所有其他内容。

于 2014-09-11T10:29:02.443 回答