【发布时间】:2017-01-04 11:44:54
【问题描述】:
我正在使用 durandal 和 requirejs 来编写我的视图模型。每次我离开视图时,我都会使用组合生命周期回调方法deactivate。我想用这种方法处理我的视图模型。
我尝试过delete this、this = undefined,但它们似乎不起作用。
我也在像这样使用 durandal 事件聚合器:
self.activate = () => {
App.trigger("testEvent");
};
App.on("testEvent").then(() =>
{
alert('Event Triggered!');
});
所以每次加载视图模型时,都会触发该事件。现在,如果我导航离开视图,然后导航回来(因此将再次加载视图模型),那么事件将被触发两次。如果我第三次导航到视图,事件将被触发 3 次,依此类推。所以之前的视图模型仍然存在,这就是为什么每个视图模型都会触发 durandal 事件。因此,要解决此问题,我需要在停用状态下处理视图模型,我该怎么做?
注意。有问题的视图模型是瞬态的,而不是单例的。
【问题讨论】:
标签: javascript durandal