2014-11-01 26 views
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> 

回答

1

你問的東西已經是herehere

另外,如果你想

+0

我走過每一個問題多次讀取你的會話是持久性的,你可以使用this package。我已經安裝了這個軟件包,但我仍然遇到問題,使得會話在點擊之後以及按照該順序進行刷新後仍然保持不變,即使將其設置爲臨時文件,它仍會在頁面刷新時重置。我已經更新了上面的代碼。 – 2014-11-01 18:12:33

+1

爲什麼在啓動時將此會話設置爲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

+0

對不起,我不想問你能告訴我更詳細的一點嗎?如果不在meteor.startup中,我會在哪裏放置Session.setDefaultPersistent(「enter」,false)。目前它在console.log上返回true。我沒有得到這個,對不起。 – 2014-11-01 20:13:28