如何强制Aurelia在不使用路由器的情况下销毁/重新创建视图/视图模型对

如何强制Aurelia在不使用路由器的情况下销毁/重新创建视图/视图模型对,aurelia,aurelia-templating,Aurelia,Aurelia Templating,从Aurelia开始时,if.bind不会导致子视图/视图模型被破坏,这让人感到惊讶。它确实经历了绑定/取消绑定连接/分离的循环,我可以看出这对于某些场景来说是有意义的。但我也希望能够完全销毁视图/视图模型,并从头开始重新创建它。我使用if.bind创建了一个演示我最大努力的。我正在寻找关于如何彻底销毁这些文件的建议。谢谢 看起来您可以使用元素将自定义元素视为视图/视图模型,从而使用瞬态创建行为 普朗克: 这比我第一次使用repeat.for更好。我仍然认为这是一个黑客,因为我相信撰写是针对

从Aurelia开始时,
if.bind
不会导致子视图/视图模型被破坏,这让人感到惊讶。它确实经历了绑定/取消绑定连接/分离的循环,我可以看出这对于某些场景来说是有意义的。但我也希望能够完全销毁视图/视图模型,并从头开始重新创建它。我使用
if.bind
创建了一个演示我最大努力的。我正在寻找关于如何彻底销毁这些文件的建议。谢谢

看起来您可以使用
元素将自定义元素视为视图/视图模型,从而使用瞬态创建行为

普朗克:



这比我第一次使用
repeat.for
更好。我仍然认为这是一个黑客,因为我相信撰写是针对情况下,人们可能会使用不同类型的视图模型。此外,Jeremy Danyow还尽可能使用自定义元素进行组合。另外值得注意的是,
@transient
在这种情况下没有什么区别,视图/视图模型被视为transient。也许这种情况会导致github问题?正确-我只是没有清理瞬态装饰器,但它在这里并不适用。在这种情况下,瞬态是默认行为。您可以使用
@singleton()
来指示路由器重用实例。我很确定自定义元素无法使用singleton视图模型。因此,多个元素将各自拥有自己的视图模型。但这种情况有点不同——模板引擎似乎挂在元素引用上并将其添加回来,而不是从头开始创建它。github问题可能会引发一些关于这种行为的对话。你是对的。现在,写作基本上是唯一的方法。感谢您抽出时间来调查此事!
<template if.bind="someBoolean">
  <compose view-model="my-other-element.js"></compose>
</template>