javascript – 在Meteor.js中将可变范围设置为模板

是否可以创建范围为模板的变量?该变量可以在模板中的不同帮助器之间共享,但不存在于模板之外.

在下面的这个例子中,如何在2个模板之间共享游戏变量,而不重复定义?使用var初始化它使其成为全局,这不是我想要的.谢谢!

Template.userInfo.game = function() {
    var game = 'angry Bird';
    return game + ' game';
};

Template.userInfo.score = function() {
    var game = 'angry Bird';
    return game + ' score';
};

解决方法

如果有人绊倒这个,并且使用Meteor 1.0,那么你可以如何实现这一点.
Template.name.onCreated(function(){
    this.data.variableName = "something";
});

Template.name.helpers({
    'helper' : function() {
        return Template.instance().data.variableName;
    }
});

这样,该变量的作用域就是创建的模板的实例.我有一个页面使用相同模板的多个实例,因此这是非常有用的.

编辑:

所以这对于嵌套在另一个模板中的模板是非常有效的,但是对父模板没有任何效果.数据属性没有持有值,所以我做了一些更多的研究,并在Template.onCreated的例子中找到了this,他们有this.highlightedPicture = new ReactiveVar(null);很明显,您可以在Template实例上定义新的属性.我在两种情况下尝试过,并且它与Template.instance()非常相似.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...