Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在单击事件后更改会话值,以便页面刷新不会重置Meteor上的会话_Javascript_Session_Meteor - Fatal编程技术网

Javascript 如何在单击事件后更改会话值,以便页面刷新不会重置Meteor上的会话

Javascript 如何在单击事件后更改会话值,以便页面刷新不会重置Meteor上的会话,javascript,session,meteor,Javascript,Session,Meteor,我非常接近让我的应用程序按我所希望的那样运行,但是我有一个小问题。我似乎无法将Session.set设置为在单击事件之后保留,并且用户重新加载页面。我基本上是试图建立一个年龄门来查看酒精供应商的网站 您可以查看站点,当您单击链接时,它会隐藏地图,但当您刷新它时,我希望它在初始单击和刷新后隐藏地图,但需要初始单击 您可以在下面查看我的javaScript Template.homePage.helpers({ // because the Session variable will most

我非常接近让我的应用程序按我所希望的那样运行,但是我有一个小问题。我似乎无法将Session.set设置为在单击事件之后保留,并且用户重新加载页面。我基本上是试图建立一个年龄门来查看酒精供应商的网站

您可以查看站点,当您单击链接时,它会隐藏地图,但当您刷新它时,我希望它在初始单击和刷新后隐藏地图,但需要初始单击

您可以在下面查看我的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 name="homePage">



{{#if data}}

{{> postsList}}

{{ else }}

<h1>Choose a Province:</h1>

{{> map}}

<a href="#">Click Me</a>

{{/if}}



</template>

{{{#如果数据}}
{{>postsList}
{{else}
选择一个省:
{{>映射}
{{/if}

你问的问题已经解决了


此外,如果您希望会话持续进行,可以使用

我已将每个问题通读了多次。我已经安装了这个软件包,但是我仍然无法使会话在单击之后保持持久性,并且在按该顺序刷新之后,它仍然会在页面刷新时重置,即使它被设置为临时。我已经更新了上面的代码。为什么在启动时将此会话设置为临时?你说你想让它持久。尝试类似于
Session.setDefaultPersistent(“enter”,false)
的方法,然后使用
Session.update(“enter”,true)
对其进行更新。如果你想让它从temp变为persist,你必须使用方法
Session.makePersistent(key)
,然后改变值,而不是
Session.setPersistent(“enter”,false)
对不起,我不想问,你能给我看得更详细一点吗。如果不在meteor.startup中,我将Session.setDefaultPersistent(“enter”,false)放在哪里。当前,它在console.log上返回true。很抱歉,我没有收到这个消息。
Template.homePage.helpers({//因为会话变量很可能在第一次使用数据时未定义:function(){return!(Session.get(“enter”);});Template.homePage.events({'click a':function(){alert(“removeMap”);Session.update(“enter”,true)console.log(Session.get(“enter”);});startup(函数(){Session.setDefaultPersistent(“enter”,false)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>