我对一个看似简单的 ember 问题感到困惑。我正在使用active_model_serializers 元数据序列化从 rails 控制器序列化我的 rails current_user 方法,然后使用这个人的临时解决方案提取该 current_user 元 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);
}
});
到目前为止一切都很好。现在我可以通过输入 App.metaData.current_user 从控制台访问 current_user 信息,也可以通过调用特定属性从把手访问,即:
{{App.metaData.current_user.email}}
并且该电子邮件属性显示在模板中。当我尝试从 ember 控制器中访问该全局变量时,问题就出现了。这看起来非常简单,但我似乎无法从任何 ember 控制器中访问 current_user。我试过了:
currentUserBinding: 'App.metaData.current_user',
currentUser: function() {
return App.metaData.current_user;
}.property(),
Ember.get('App.metaData.current_user')
和其他一些方法,但似乎无法访问它。奇怪的是,我可以通过直接路径从控制台和车把中如此轻松地访问 current_user,但不能从 ember 控制器中访问。我一定遗漏了一些明显的东西。
将不胜感激任何帮助!