问题所在
我试图在一个动作之后重新渲染一个组件,但是我需要重新渲染的模板部分没有更新,因为它来自我创建的一个帮助器的结果,或者至少我认为是因为这个原因。
在我的组件模板中,我有类似这样的东西:
{{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}}这是正确的做法吗?
发布于 2017-03-19 13:43:14
您不需要显式调用this.rerender()。如果您更改了value属性,则会自动调用my-helper进行重新计算,并将其显示在组件模板中。
https://stackoverflow.com/questions/42878867
复制相似问题