如何在不使用路由器的情况下强制 Aurelia destroy/recreate view/viewModel 对

How to force Aurelia to destroy/recreate a view/viewModel pair without using router

当开始使用 Aurelia 时,if.bind 并没有导致 child view/viewModel 被摧毁,这让我感到惊讶。它确实经历了一个 bind/unbind attached/detached 循环,我可以看出这对某些场景有何意义。但我也希望能够完全摧毁 view/viewModel 并从头开始重建它。我创建了一个 plunker 来展示我使用 if.bind 的最大努力。我正在寻找有关如何完全销毁 的建议。谢谢!

看起来您可以使用 <compose> 元素将自定义元素视为 view/view 模型,从而使用瞬态创建行为。 See compose documentation

笨蛋: https://plnkr.co/edit/vKsQsHKsIp4vTVjG5G7f?p=preview

<template if.bind="someBoolean">
  <compose view-model="my-other-element.js"></compose>
</template>