Ember js函数打印源代码而不是实际值

时间:2018-06-09 21:47:04

标签: javascript ember.js

我无法理解为什么这不打印实际的总和(= 3)而是打印源代码

组件

import Component from '@ember/component';

export default Component.extend({

  message: function(){
    let sum = 1+2
    return sum
  }
})

模板

{{message}}

这会将源代码打印为字符串!

  

function(){let sum = 1 + 2;回报; }

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
  })();
})