检索当前用户的策略

时间:2012-03-08 13:29:08

标签: javascript ajax ember.js ember-old-router

我正在寻找一种优雅的策略,用emberjs(和ember-data)检索当前的用户信息。

目前,我执行以下操作:

我的API使用当前用户回复/users/me 在我的适配器中,当检索到的对象id不是我希望的那个时,我添加一个real_id这是id(数据库中用户的id)并且我用我的内容替换实际返回的id我期待着。

因此,当我的适配器将“me”作为用户的id,但服务器返回1时,我得到以下json:

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

这很有效。但我不是一个大粉丝,我想尽量避免更改适配器的默认内容。

你为此使用任何策略吗?你会推荐什么?

2 个答案:

答案 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()