问题
我试图在一个动作之后重新渲染一个组件,但是我需要重新渲染的模板部分没有更新,因为它来自我制作的助手的结果,或者至少我认为是因为这个。
在我的组件模板中,我有这样的东西:
{{my-helper value}}
在关联的组件 js 文件中,我有这个动作:
fillGrid(location, length) {
/* logic */
this.rerender();
},
我是怎么做的
我找到了一种方法来做到这一点,但感觉很奇怪,我使用了一个布尔值,我在动作中在真假之间切换以强制重新渲染
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}}
这是正确的方法吗?