我正在寻找一种优雅的策略,用emberjs(和ember-data)检索当前的用户信息。
目前,我执行以下操作:
我的API使用当前用户回复/users/me
在我的适配器中,当检索到的对象id不是我希望的那个时,我添加一个real_id
这是id(数据库中用户的id)并且我用我的内容替换实际返回的id我期待着。
因此,当我的适配器将“me”作为用户的id,但服务器返回1时,我得到以下json:
{"real_id": 1, "id": "me"}
这很有效。但我不是一个大粉丝,我想尽量避免更改适配器的默认内容。
你为此使用任何策略吗?你会推荐什么?
答案 0 :(得分: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);
});
}
});
答案 1 :(得分:-5)
get = Em.get
set = Em.set
App.AccountController = Em.Controller.extend
contentBinding: '_content.firstObject'
init: ->
set @, "_content", App.User.find()