有没有办法让Ember.Component强制重新渲染?
有.rerender()
方法,但它没有帮助。
我还尝试使用.notifyPropertyChange
作为模板,layoute - 相同的
现在对于这种情况我需要将一块模板包装到if
包装器中并切换标志的值。但方式是丑陋和无聊。
有什么想法吗?
答案 0 :(得分:0)
要覆盖此背景'过程你可以使用这样的东西:
showElement: false,
actions: {
buttonClick() {
Ember.run(()=> {
this.toggleProperty('showElement');
})
}
}
这将强制运行循环重新启动,而不是Ember处理任何属性更改并决定代码应该如何执行,就像JavaScript事件循环一样。
可以找到here
的一个很好的解释答案 1 :(得分:0)
我的一个组件遇到了同样的问题。正如社区所说,如果使用正确的ember模式,则不必执行此操作。
然而,正如在特定情况下,我找到了解决办法。
您必须在routes/somefile.js
中创建一个动作以进行刷新,如下所示:
actions: {
refresh() {
this.refresh();
}
}
并在组件视图中添加一个隐藏按钮,点击路由器的操作,如此
<button id="refresh_invoice" class="hidden" {{action 'refresh'}}></button>
使用Jquery在组件中,您可以单击隐藏按钮,这将刷新组件。
这不是一个很好的修复,但它的工作。 跳它会有所帮助。