如何在组件包含帮助程序时重新呈现组件?

时间:2017-03-18 19:26:28

标签: javascript ember.js helper rerender

问题

我试图在一个动作之后重新渲染一个组件,但是我需要重新渲染的模板部分没有更新,因为它来自我做的助手的结果,或者至少我认为这是因为

在我的组件模板中,我有这样的东西:

{{my-helper value}}

在相关的组件js文件中,我有这个动作:

fillGrid(location, length) {
  /* logic */

  this.rerender();
},

我是怎么做的

我找到了一种方法,但它感觉很奇怪,我正在使用booelan,我在行动中切换真假,以强制重新渲染

fillGrid(location, length) {
    let me = this;
    this.set('show', false);

    /* logic */

    Ember.run.later(function() {
      me.set('show', true);
      me.rerender();
    }, 10);
}

在模板中:

{{#if show}}
    {{my-helper value}}
{{/if}}

这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

您无需明确致电this.rerender()。如果您更改了value属性,则会自动调用my-helper进行重新计算,它将显示在组件模板中。