2012-03-08 73 views
5

我正在尋找一種優雅的策略來檢索emberjs(和ember-data)當前的用戶信息。檢索當前用戶的策略

目前,我做到以下幾點:

我的API響應/users/me與當前用戶。
在我的適配器中,當檢索到的對象ID不是我所希望的那個時,我添加了一個real_id,它是id(用戶在數據庫中的ID),並且用我的身份替換了真正的返回ID期待。

所以,當我的適配器有「我」作爲用戶的ID,但服務器返回1,我得到以下JSON:

{"real_id": 1, "id": "me"} 

這工作。但我不是一個很大的粉絲,我想盡量避免更改適配器的默認內容。

你對此有何策略?你會推薦什麼 ?

回答

9

爲此,我將使用控制器App.currentUserController

App.CurrentUserController = Ember.ObjectController.extend({ 
    content: null, 

    retrieveCurrentUser: function() { 
     var controller = this; 
     Ember.$.getJSON('/users/me', function(data) { 
      App.store.load(App.User, data); 
      var currentUser = App.store.find(data.id); 
      controller.set('content', currentUser); 
     }); 
    } 
}); 
+0

我試過了,但我得到'遺漏的類型錯誤:無法調用undefined' – X2theZ 2013-03-27 20:26:56

+0

澤維爾的方法「負荷」,去哪裏定義您的商店,並添加App.store = App.Store。 create() – Vojto 2013-05-17 12:07:12

-5
get = Em.get 
set = Em.set 
App.AccountController = Em.Controller.extend 

     contentBinding: '_content.firstObject' 

     init: -> 
      set @, "_content", App.User.find() 
+2

這假設第一個返回的用戶是當前的用戶,這可能不是api的最佳主意。 – 2012-09-30 20:31:00

+0

你可以限制這個在服務器上 – 2012-09-30 20:33:31

+0

你能解釋*爲什麼*這有助於。 – ChrisF 2012-09-30 20:38:10