我想在帐户页面上访问当前用户的信息,以便对其进行编辑。我不确定如何获取当前用户,所以我在我的服务器上设置了一个名为 session 的路由。
在我的服务器上访问“/session”会返回一个 JSON blob,{ session: {id: "<guid>"}}
它是会话中当前用户的 id。
在 myApplicationRoute
中,我获取 id,获取相应的用户模型,然后将模型设置为currentUser
my 上的属性ApplicationController
。
App.ApplicationRoute = Ember.Route.extend({
setupController: function (controller) {
var self = this;
$.getJSON('/session', function (data) {
if (data && data.session && data.session.id) {
self.set('controller.currentUser', self.store.find('user', data.session.id));
}
});
}
});
设置后,我可以访问属于currentUser
索引模板内部的字符串属性,IndexController
如下所示:
App.IndexController = Ember.Controller.extend({
needs: ['application'],
currentUser: function () {
return this.get('controllers.application.currentUser');
}.property('controllers.application.currentUser')
});
太好了,但是当我尝试设置多个值Ember.Select时,我收到此错误:
Assertion Failed: Cannot delegate set('roles', []) to the 'content' property of object proxy <DS.PromiseObject:ember435>: its 'content' is undefined.
我做了一个jsbin
它展示了我正在尝试做的事情。我非常确信我的错误与 ajax 请求有关getJSON
,因为我的 jsbin 示例适用于 localstorage。
我应该如何加载当前用户?谢谢!