有没有办法阻止视图在停用时被解除绑定?

时间:2016-06-28 21:50:31

标签: aurelia aurelia-binding

我发现,即使将装饰器@singleton(false)分配给视图模型,当视图模型确实在激活/停用时作为单例持久存在时,绑定和组件等也不会。

(我认为这是因为它们存储在停用时处理的容器中。)

结果是,在使用单例视图模型对视图进行每次取消激活/激活时,视图都是未绑定的,然后重新绑定。

是否有可能导致绑定在停用/激活期间持续存在?

2 个答案:

答案 0 :(得分:0)

我也对这个答案感兴趣。 也许我现在正在制造一个完全傻瓜,但为什么不使用aurelia-history navigate(..)命令?

答案 1 :(得分:0)

这一次困扰了我一段时间。它还让我感到困惑的是,为什么实施它不是Aurelia团队的优先考虑。

这需要相当多的代码才能正常运行。我已将代码放在Gist中:https://gist.github.com/Vaccano/1e862b9318f4f0a9a8e1176ff4fb727e

除了last之外,所有文件都是新文件,这是对main.ts文件的修改。此外,我的所有代码都在Typescript中。如果您使用的是Javascript,则必须进行翻译。

它背后的基本思想是缓存视图和视图模型。并用缓存路由器替换路由器。因此,当用户导航回您的页面时,它首先检查是否已经创建了视图/视图模型并使用该模型而不是创建新模型。

注意:这不是"组件"级别代码。这意味着我已经测试过这适用于我使用它的场景。

我开始在此处进行此更改:https://github.com/aurelia/router/issues/173还有另一个用户(Scapal)制作了适合他的内容并将其发布到那里。如果我发布的内容对您不起作用,他可能会帮助您。