0
我非常接近讓我的應用按我的意願執行,但是存在一個小問題。我似乎無法讓Session.set留在點擊事件後,並且用戶重新加載頁面。我基本上試圖建立一個查看酒精供應商網站的年齡門。如何在單擊事件後更改會話值,以便頁面刷新不會重置流星上的會話
你可以查看站點here,當你點擊鏈接時它隱藏了地圖,但當你刷新它時,我想讓它在初始點擊和刷新後隱藏地圖,但需要初始點擊。
您可以查看我的JavaScript下面
Template.homePage.helpers({
// because the Session variable will most probably be undefined the first time
data: function(){
return !Session.get("enter");
}
});
Template.homePage.events({
'click a' : function(){
alert("removeMap");
Session.set("enter", false);
}
});
Template.homePage.rendered = function(){
Session.set("enter", true);
}
**
JS更新
**
Template.homePage.helpers({
// because the Session variable will most probably be undefined the first time
data: function(){
return !Session.get("enter");
}
});
Template.homePage.events({
'click a' : function(){
alert("removeMap");
Session.setPersistent("enter", false);
console.log(Session.get("enter"));
}
});
Meteor.startup(function() {
Session.setTemp("enter", true);
console.log(Session.get("enter"));
});
和我的模板
<template name="homePage">
{{#if data}}
{{> postsList}}
{{ else }}
<h1>Choose a Province:</h1>
{{> map}}
<a href="#">Click Me</a>
{{/if}}
</template>
我走過每一個問題多次讀取你的會話是持久性的,你可以使用this package。我已經安裝了這個軟件包,但我仍然遇到問題,使得會話在點擊之後以及按照該順序進行刷新後仍然保持不變,即使將其設置爲臨時文件,它仍會在頁面刷新時重置。我已經更新了上面的代碼。 – 2014-11-01 18:12:33
爲什麼在啓動時將此會話設置爲temp?你說你想讓它堅持下去。嘗試像'Session.setDefaultPersistent(「enter」,false)''然後用'Session.update(「enter」,true)''來更新它。如果你想從temp改變爲persist,你必須使用'Session.makePersistent(key)'方法,然後改變值,而不是'Session.setPersistent(「enter」,false)' – Sindis 2014-11-01 19:56:36
對不起,我不想問你能告訴我更詳細的一點嗎?如果不在meteor.startup中,我會在哪裏放置Session.setDefaultPersistent(「enter」,false)。目前它在console.log上返回true。我沒有得到這個,對不起。 – 2014-11-01 20:13:28