【问题标题】:Durandal - Pub/sub - when to clean up subscriptionsDurandal - Pub/sub - 何时清理订阅
【发布时间】:2014-01-19 18:59:09
【问题描述】:

我们的 durandal 应用程序有许多模块化 UI 组件(全部使用基于 AMD 构造函数的视图模型创建),我想开始添加 pub/sub 通信。我需要确定确保正确“清理”订阅的最佳方法。

应该何时/如何清理这些订阅?

deactivate 事件对于少数几个视图模型来说似乎已经足够了,但是剩下的呢?我没有看到允许视图模型在其自身之后可靠地“清理”的特定机制。

在我开始实施某种一次性模式之前,我在这里是否缺少一些明显的方法?

后续问题:除了调用subscription.off() 来正确清理之外,还有什么可以做的吗?

【问题讨论】:

    标签: durandal durandal-2.0


    【解决方案1】:

    在使用视图模型时从deactivate 调用subscription.off() 或在使用小部件时从detached 调用应该是所有必需的。事件系统有一堆测试用例https://github.com/BlueSpire/Durandal/blob/master/test/specs/events.spec.js#L240,可以作为你自己测试的启动器。

    【讨论】:

    • 我想的答案都很好。这些方法对于不参与路由的非小部件(这是大量用例)并不适用
    • 这与路由本身无关。只要视图是由激活器 (durandaljs.com/documentation/Using-Activators) 创建的,无论是使用 router 还是手动创建自己的 deactivate,都会被调用。随意使用 github.com/dFiddle/dFiddle-2.0 创建一个用例,因为这目前不起作用。
    猜你喜欢
    • 2023-02-12
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    • 2020-02-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多