我无法理解为什么这不打印实际的总和(= 3)而是打印源代码
组件
import Component from '@ember/component';
export default Component.extend({
message: function(){
let sum = 1+2
return sum
}
})
模板
{{message}}
这会将源代码打印为字符串!
function(){let sum = 1 + 2;回报; }
答案 0 :(得分:6)
您要找的是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
})
});
答案 1 :(得分:1)
您需要先运行该功能,然后再将其分配给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
})();
})