0

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

单击条目会使浏览器导航到详细信息视图。这里一切都好。问题是当我返回时,我的所有过滤器选择都消失了,并且列表重新加载而没有过滤器。我看过 durandal 样本,这不应该发生,调用了 activate 方法,但没有实例化 VM。

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

我正在使用 durandal 2.0

4

1 回答 1

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()
    }
);

按预期工作。

于 2014-03-15T15:13:22.387 回答