Javascript 在Ember.computed.map中设置作用域/绑定/此
我想知道是否有可能将Javascript 在Ember.computed.map中设置作用域/绑定/此,javascript,ember.js,Javascript,Ember.js,我想知道是否有可能将this的作用域绑定到Ember.computed.map函数中,以将作用域绑定到模型实例,而不是模块本身 例如,我想写一些类似于: export default Ember.Object.extend({ property1: valueWhichChangesWithModel1, property2: valueWhichChangesWithModel2, helperProperty: Ember.computed('property1',
this
的作用域绑定到Ember.computed.map
函数中,以将作用域绑定到模型实例,而不是模块本身
例如,我想写一些类似于:
export default Ember.Object.extend({
property1: valueWhichChangesWithModel1,
property2: valueWhichChangesWithModel2,
helperProperty: Ember.computed('property1', function () {
const property = this.get('property1');
return [whatever(property)];
})
mapFunction: Ember.computed.map('helperProperty', 'property2', function (value, index) {
return stuff(value, this.get('property2'));
})
})
但是,this.get('property2')
总是失败,因为this
绑定到模块,而不是模型对象
我尝试过的所有类型的常规绑定技巧都没有授予我访问模型实例的权限,例如,在函数的不同位置对我们
bind
或apply
。我不确定我是不是碰巧找不到合适的地方放它,是否还有其他解决办法,或者这是不可能的。在Ember的文档中,我也找不到任何关于如何处理这个问题的参考资料。谢谢任何人的建议 你的意思是使用DS.Model.extend
?@kumkanillam实际上不是。使用的是自定义数据实现,而不是Ember数据,所以我的意思是在本例中使用Ember.Model
。@kumkanillam为了进一步澄清,我只是将其改回Object,因为这在功能上就是正在发生的事情。很抱歉造成混淆。您的意思是使用DS.Model.extend
?@kumkanillam实际上不是。使用的是自定义数据实现,而不是Ember数据,所以在本例中,我实际上是指Ember.Model
。@kumkanillam为了进一步澄清,我刚刚将其改回Object,因为这在功能上是正在发生的事情。很抱歉给你带来了困惑。