Durandal - 在返回列表视图时阻止重新加载

时间:2014-03-15 15:01:12

标签: javascript single-page-application durandal-2.0

我在我的durandal App上有一个经典的主要细节视图,在第一个视图中我有一个实体列表和一个过滤器框,这个过滤器框使列表刷新应用过滤器。

单击某个条目会使浏览器导航到详细视图。一切都很好。问题是,当我返回时,我的所有过滤器选择都消失了,列表重新加载而没有过滤器。我已经看到了durandal示例,并且不会发生这种情况,调用activate方法,但VM未实例化。

有人可以给我一些指示。所有路由器设置,激活等都是默认设置。

我正在使用durandal 2.0

1 个答案:

答案 0 :(得分:0)

好吧,我明白了,我实际上是从主视图的vm模块返回一个函数,这将使vm每次都实例化,我现在返回一个新对象,问题就解决了:

<强>之前:

 define([
    'plugins/router',
    'knockout'
],
    function (router,ko) {
        var listview= function() {
            //allMyobservables here, etc
        }
        return listview
    }
);

立即

 define([
    'plugins/router',
    'knockout'
],
    function (router,ko) {
        var listview= function() {
            //allMyobservables here, etc
        }
        return new listview()
    }
);

按预期工作。