我正在使用Durandal。当我第一次加载页面时,然后我加载网格并填充数据。从网格中选择一些内容并显示细节。现在我退出浏览器并再次使用相同的链接返回。然后我可以看到它重新加载上次在退出浏览器之前选择的旧数据。我希望在浏览器关闭时清除该数据。我尝试创建了deactivate函数并返回viewmodel
function deactivate(){
// clean up code
}
但我不知道究竟在哪里调用此函数来清除数据。或者还有其他方法吗?
UPDATE1
很抱歉,我的意思是数据不会在关闭浏览器时记住,但如果我导航到网站上的其他页面,然后再次返回同一页面。
答案 0 :(得分:0)
这可能有助于你试试这个!
Click& Clean允许您在Chrome关闭时清除浏览数据,您可以将此功能添加到Google Chrome浏览器的浏览器中: https://chrome.google.com/extensions/detail/ghgabhipcejejjmhhchfonmamedcbeod!
如果您手动清除所有缓存和历史记录,那么您也无法看到上一页。这可能取决于浏览器而不是您的网站程序!
答案 1 :(得分:0)
添加签名为"取消激活"在视图停用时,您的viewmodel和Durandal将使用内置功能调用此函数(来源:http://durandaljs.com/documentation/Hooking-Lifecycle-Callbacks)。在该函数中,您将要设置将数据保持为未定义的observable。
define([],
function () {
var vm = {
//#region Initialization.
activate: activate,
attached: attached,
deactivate: deactivate,
//#endregion
//#region Properties.
data: ko.observable(),
//#endregion
//#region Methods.
//#endregion
};
return vm;
//#region Internal methods.
function activate() {
return true;
}
function attached() {
// Fetch your data.
return true;
}
function deactivate() {
vm.data(undefined);
return true;
}
//#endregion
});