2012-09-25 44 views
0

我想實現骨幹的current_user。 我這樣做是通過發送請求到app.com/current_user.json如何在Backbone 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的對象,我想從這個函數中獲得。

回答

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 
     ) 
+0

你會建議什麼?我只想在取回時返回模型。 – Stpn

+0

對不起,您剛剛誤讀了您的問題。您將模型作爲成功方法中的第一個參數。 –

+0

更新了答案。 –

0

這裏是你能做什麼:

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

需要注意的是,在這樣做,你告訴抓取到不同步。這意味着只有在抓取完成後才能處理抓取之後的所有其他內容。

相關問題