2012-03-08 41 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