我对一个看似简单的余烬问题感到困惑.我正在使用active_model_serializers元数据序列化从rails控制器序列化我的rails current_user方法,然后使用这个人的临时解决方案提取并将current_user meta json设置为全局ember变量.
App.CustomRESTSerializer = DS.RESTSerializer.extend({
extractMeta: function(loader, type, json) {
var meta;
meta = json[this.configOption(type, 'meta')];
if (!meta) { return; }
Ember.set('App.metaData', meta);
this._super(loader, type, json);
}
});
Run Code Online (Sandbox Code Playgroud)
一切都很好,直到这一点.现在,我可以通过键入App.metaData.current_user以及通过调用特定属性从句柄访问控制台中的current_user信息,即:
{{App.metaData.current_user.email}}
Run Code Online (Sandbox Code Playgroud)
并且该电子邮件属性显示在模板中.当我尝试从ember控制器中访问该全局变量时,问题就出现了.这看起来非常简单,但我似乎无法从任何ember控制器中访问current_user.我试过了:
currentUserBinding: 'App.metaData.current_user',
currentUser: function() {
return App.metaData.current_user;
}.property(),
Ember.get('App.metaData.current_user')
Run Code Online (Sandbox Code Playgroud)
和其他一些方法,但似乎无法访问它.奇怪的是,我可以通过直接路径从控制台和把手内轻松访问current_user,但不能从ember控制器中访问.我一定错过了一些明显的东西.
非常感谢任何帮助!