Javascript 无法将类作为函数调用
我目前面临计算属性的问题,我有一个名为crossconnection的模型,其中包含一些计算属性,如:Javascript 无法将类作为函数调用,javascript,ember.js,frontend,Javascript,Ember.js,Frontend,我目前面临计算属性的问题,我有一个名为crossconnection的模型,其中包含一些计算属性,如: relevantPoints: computed(function () { if (this.get('IsCA') === true && this.get('IsCM') === true) { return "/assets/images/big/ca-cm.png"; } else if (this.get('IsCA') =
relevantPoints: computed(function () {
if (this.get('IsCA') === true && this.get('IsCM') === true) {
return "/assets/images/big/ca-cm.png";
}
else if (this.get('IsCA') === true && this.get('IsCM') === false) {
return "/assets/images/big/ca.png";
}
else if (this.get('IsCA') === false && this.get('IsCM') === true) {
return "/assets/images/big/cm.png";
}
else if (this.get('IsCA') === false && this.get('IsCM') === false) {
return "/assets/images/big/nca-ncm.png";
}
}),
在运行项目时,我不断遇到以下错误:
未捕获类型错误:无法将类作为函数调用
有人能澄清一下吗
附言: 我在用
- 余烬:3.0.0
- 余烬数据:3.0.2
- jQuery:3.3.1
更新: 澄清:我有一个包含一些计算属性的“交叉连接”模型,我的模型通过一个简单的
from = this.store.query('crossconnection ', {
fromOpKey: this.get('opSelected').get('opKey'),
limit: -1
});
这将导致以下错误(附加完整堆栈跟踪)
编辑-这似乎不是错误的原因,但我现在就把它留在这里 您的计算机中缺少一个参数。Computed首先将要监视的属性作为字符串,然后是回调函数:
relevantPoints: computed(‘isCA’, ‘isCM’, function () {
if (this.get('IsCA') === true && this.get('IsCM') === true) {
return "/assets/images/big/ca-cm.png";
}
...,
}),
这个答案适用于1.13到3.x,对<3.0的代码段进行了一个小的修改。低于3.0的应用程序版本应使用Ember.computed而不是computed。请确保正确导入
computed
:
从'@ember/object'导入{computed}代码>如何调用函数
?相关代码不在这里。您需要编写一个来获得答案。我不是,这只是在模型阶段,还没有开始为它编写控制器,当尝试运行项目时,它无法说明上面提到的错误,而不是生成计算属性来提供整个文件。计算属性中有语法错误。Computed是Ember API的一部分,需要多个参数。仅当需要指定计算无效的时间时,才需要依赖键,但它们不是必需的。
relevantPoints: computed(‘isCA’, ‘isCM’, function () {
if (this.get('IsCA') === true && this.get('IsCM') === true) {
return "/assets/images/big/ca-cm.png";
}
...,
}),