【发布时间】:2017-02-07 17:26:24
【问题描述】:
这里是场景
dep = function(){
cannot put any "this" here
}
obj = DS.Model.extend({
response: DS.attr(),
cp: Ember.computed(dep(), function(){ ...})
});
计算属性只有在模型加载后才知道;响应是一个 json 字段,包含各种键。我想依赖 json 的某些部分,加载模型后知道确切的部分
dep() 函数需要访问“this”,但如果它是在 create 指令之外定义的,它就不起作用,如果它被定义为计算属性,它也不起作用 比如
obj = DS.Model.extend({
response: DS.attr(),
dep:Ember.computed('response', function(){
some computation
and for instance
return 'response.path1{a,b}';
}),
cp: Ember.computed('dep', function(){ ...})
});
也不起作用,因为 dep 并没有从“响应”依赖改变,我们需要对 cp 和 dep 应用相同的依赖,这是重言式的,并且不需要 dep
另一件不起作用的是
obj = DS.Model.extend({
response: DS.attr(),
cp: Ember.computed(this.dep(), function(){ ...}),
dep(){ this.get('response')... }
});
那么有谁知道如何在运行时设置计算属性的依赖键,计算依赖于模型实例
谢谢
【问题讨论】:
标签: ember.js