【发布时间】:2018-01-19 09:57:00
【问题描述】:
我很困惑。我有这个工作,但我不知道为什么。这是设置... 服务,被剥夺了......
export default Ember.Service.extend({
editableCat: null,
saveCatChanges() {
var editCat = editableCat;
this.get('editstate').saveJournalChanges();
...
调用者,它是一个组件活动... 从 'ember' 导入 Ember;
export default Ember.Component.extend({
editstate: Ember.inject.service('edit-state'),
actions: {
createCat() {
WORKS this.get('editstate').saveCatChanges();
FAILS Ember.get(this.get('editstate'), 'saveCatChanges')
}
}
});
“FAILS”版本在访问服务时没有“this”的定义。真的吗?所以没有定义“saveCatChanges”,它例外。但是服务中的相同代码(使用 WORKS 变体调用)有一个“this”,一切都很好。
为什么?嗯?我追查到这件事的唯一原因是在尝试记录它时感到非常沮丧,所以,嗯,什么?
请帮助我理解。当我需要 foo.bar vs Ember.get(this, 'foo').bar vs Ember.get(this,Ember.get(this, 'foo'),'bar) 时,Ember 让我感到困惑,但这尤其出乎意料。
【问题讨论】:
标签: ember.js