我的 durandal 应用程序上有一个经典的主详细信息视图,在第一个视图中我有一个实体列表和一个过滤器框,这个过滤器框使列表使用应用的过滤器刷新。
单击条目会使浏览器导航到详细信息视图。这里一切都好。问题是当我返回时,我的所有过滤器选择都消失了,并且列表重新加载而没有过滤器。我看过 durandal 样本,这不应该发生,调用了 activate 方法,但没有实例化 VM。
有人可以在这里给我一些指示。所有路由器设置、激活等都是默认设置。
我正在使用 durandal 2.0
我的 durandal 应用程序上有一个经典的主详细信息视图,在第一个视图中我有一个实体列表和一个过滤器框,这个过滤器框使列表使用应用的过滤器刷新。
单击条目会使浏览器导航到详细信息视图。这里一切都好。问题是当我返回时,我的所有过滤器选择都消失了,并且列表重新加载而没有过滤器。我看过 durandal 样本,这不应该发生,调用了 activate 方法,但没有实例化 VM。
有人可以在这里给我一些指示。所有路由器设置、激活等都是默认设置。
我正在使用 durandal 2.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()
}
);
按预期工作。