【发布时间】:2017-11-13 22:06:06
【问题描述】:
有没有办法让 Ember.Component 强制重新渲染?
有.rerender() 方法,但没有帮助。
我也尝试使用.notifyPropertyChange 模板,layoute - 相同
现在对于这种情况,我需要将一块模板包装到 if 包装器中并切换标志的值。但这种方式既丑陋又无聊。
有什么想法吗?
【问题讨论】:
-
我也遵循相同的方法
if块与切换标志的值..一段时间。希望有一些东西可以强制销毁并重新渲染组件 -
为什么需要重新渲染?
-
正如@ykaragol 的评论所暗示的,您不需要强制重新渲染组件(至少我想不出理由)。也许您可以详细说明为什么需要这样做(或者更好的是,提供一些代码来说明原因)? Ember 的渲染引擎快速的部分原因是它只在必要时重绘 DOM 的一部分(例如,如果支持数据对象已以某种方式修改)。如果我们能更好地理解原因,我们可能会建议更符合 Ember 工作原理/性能比重新绘制整个组件更好的替代方法。
-
@MichaelBoselowitz 在我的情况下(用于 UI 测试)我想更改一些影响助手行为( can-helper )的值,但我不想让它可观察,因为它仅用于测试
-
@MichaelBoselowitz 另一个案例 - 我们需要动态更改 tagName
标签: ember.js components htmlbars