【问题标题】:Meteor: activating other templates through click?Meteor:通过点击激活其他模板?
【发布时间】:2016-05-13 18:22:55
【问题描述】:

默认情况下,我将其中一个模板设置为return false。我想做的是有一个点击事件,将我以前的模板更改为return true。我的代码如下:

Template.mypage.helpers({
pagefunction(){ return false;}
});

Template.mypage.events({
'click #randomdiv': function(){
pagefunction(){ return true; }
} 
});

该命令不起作用,但希望展示我想要实现的目标。当我单击同一模板中的 div 时,我希望 pagefunction 返回 true。

与此同时,我的 HTML 看起来类似于:

<template name="mypage">
    {{#if pagefunction}}
    {{> atemplate}}
    {{/if}}
</template>

【问题讨论】:

    标签: javascript meteor


    【解决方案1】:

    你需要把那个事件变成状态。最常见的方法是使用Session 变量。

    Template.mypage.helpers({
      pagefunction(){ return Session.get('myState'); }
    });
    
    Template.mypage.events({
      'click #randomdiv': function(){
        Session.set('myState',true);
      } 
    });
    

    【讨论】:

    • 我明白你的意思。但是,无论出于何种原因,我都无法存储我的会话变量。我已经安装了它们meteor add session,所以它们不会显示为未定义。但是,它们不会显示在我的 Chrome 资源控制台上。
    • 想一想,我相信这是因为设置存储调试器通常是针对PHP的,因为代码本身可以工作。
    【解决方案2】:

    尝试这样做解决会话无法获取,在开头输入代码

    var PAGE_KEY='page_key';

    Session.setDefault(PAGE_KEY,false);

    【讨论】:

      猜你喜欢
      • 2016-05-26
      • 2015-06-16
      • 1970-01-01
      • 2023-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-12
      相关资源
      最近更新 更多