Ember js函数打印源代码而不是它的实际值
Ember js function prints source code instead its actual value
我无法理解为什么它不打印实际总和 (=3) 而是打印源代码
组件
import Component from '@ember/component';
export default Component.extend({
message: function(){
let sum = 1+2
return sum
}
})
模板
{{message}}
这会将源代码打印为字符串!
function () { let sum = 1 + 2; return sum; }
您需要先 运行 函数,然后再将其分配给 message
。您可以通过预先定义函数并像这样调用它来做到这一点:
export default Component.extend({
function a(){
let sum = 1+2
return sum
}
message: a();
})
或者您可以使用 immediately invoked function express 方法立即调用函数,方法是将函数包装在括号中并在之后立即调用它,如下所示:
export default Component.extend({
message: (function(){
let sum = 1+2
return sum
})();
})
您要找的是 computed property
:
import { computed } from '@ember/object';
import Component from '@ember/component';
export default Component.extend({
message: computed(function(){
let sum = 1 + 2;
return sum
})
});
我无法理解为什么它不打印实际总和 (=3) 而是打印源代码
组件
import Component from '@ember/component';
export default Component.extend({
message: function(){
let sum = 1+2
return sum
}
})
模板
{{message}}
这会将源代码打印为字符串!
function () { let sum = 1 + 2; return sum; }
您需要先 运行 函数,然后再将其分配给 message
。您可以通过预先定义函数并像这样调用它来做到这一点:
export default Component.extend({
function a(){
let sum = 1+2
return sum
}
message: a();
})
或者您可以使用 immediately invoked function express 方法立即调用函数,方法是将函数包装在括号中并在之后立即调用它,如下所示:
export default Component.extend({
message: (function(){
let sum = 1+2
return sum
})();
})
您要找的是 computed property :
import { computed } from '@ember/object';
import Component from '@ember/component';
export default Component.extend({
message: computed(function(){
let sum = 1 + 2;
return sum
})
});