我们的durandal应用程序有许多模块化UI组件(都使用基于AMD构造函数的视图模型创建),我想开始添加发布/订阅通信。我需要确定确保正确“清理”订阅的最佳方法。
何时/如何清理这些订阅?
对于少数几个视图模型,deactivate
事件似乎已足够,但其余视图模型呢?我没有看到一种特殊的机制允许视图模型在其自身之后可靠地“清理”。
在我实施某种一次性模式之前,我是否缺少一些明显的方法?
后续问题:除了调用subscription.off()以正确清理之外还有什么要做的吗?
答案 0 :(得分:1)
使用视图模型时从subscription.off()
调用deactivate
,或者在使用小部件时从detached
调用{{1}}应该是所有必需的。事件系统有一堆测试用例https://github.com/BlueSpire/Durandal/blob/master/test/specs/events.spec.js#L240,可用作您自己测试的启动器。