我每次都可以在Meteor模板中使用唯一变量吗?

时间:2017-01-13 20:58:55

标签: javascript meteor

在另一个模板中,我在循环中使用'articleSingle'模板。

{{#each articles}}
    {{> articleSingle}}
{{/each}}

articleSingle模板有这个:

let publishTitleNonReactive;

Template.articleSingle.onCreated(function() {

    this.autorun(function() {
        if (Template.currentData() && !publishTitleNonReactive) {
            publishTitleNonReactive = Template.currentData().publishTitle;
        }
    });

});

我希望这个publishTitleNonReactive var是唯一的,或者至少在本地范围内,这样每次使用此模板时我都可以拥有不同的值。

我知道怎样才能到达那里?

更新

我正在尝试在助手中使用该变量,该助手现在是被动的。因此,每当模板数据更新时,它都会变得不确定。

我在'articleSingle'模板中使用的助手:

titleHybrid: function(){
    return this.publishTitle;
}

2 个答案:

答案 0 :(得分:1)

您可以使用this中的onCreated

将属性存储在模板实例中
Template.articleSingle.onCreated(function () {
  this.publishTitleNonReactive = …
  …
});

答案 1 :(得分:0)

我想我明白你在问什么;你不能在每次迭代中推下文章数据吗?

{{#each article in articles}}
    {{> articleSingle article=article}}
{{/each}}

Template.articleSingle.onCreated(function() {
    let publishTitle = Template.currentData().article.publishTitle;
    this.publishTitle = new ReactiveVar(publishTitle);
});

或:

{{#each article in articles}}
    {{> articleSingle publishTitle=article.publishTitle}}
{{/each}}

Template.articleSingle.onCreated(function() {
    let publishTitle = Template.currentData().publishTitle;
    this.publishTitle = new ReactiveVar(publishTitle);
});

从那里你可以将标题存储在一个被动变量中以便在帮助器中使用它。你以这样一种方式保持它,即模板的所有实例都在共享它。