【问题标题】:Meteor - Run code after 'Re-render'Meteor - 在“重新渲染”之后运行代码
【发布时间】:2014-12-19 08:41:32
【问题描述】:

Meteor“重新渲染”后如何运行函数?

我有一个模板,它在渲染时应该运行一个 (fancyform) 函数,该函数接受一个普通的选择框,并设置它的样式。所以我把函数放在了Template.tempname.rendered = function(){}。都很好。

但我还有一个 i18n 功能(usign TAP-i18n),它通过更改会话变量来更改语言,这会使页面上的文本更改为我们定义的任何文本。

但是,Template.tempname.rendered` 中的函数不会再次运行,选择框语言也不会更新。我需要再次运行 fancyform 函数,以便选择框的语言也正确。

我该怎么做?我已经阅读(并且努力理解)依赖关系......这相关吗?这是矫枉过正吗?任何指针将不胜感激。

【问题讨论】:

标签: meteor dependencies fancyform


【解决方案1】:

在您的rendered 回调中,您需要有一个主动计算,当您的i18n 响应式字典中的任何内容发生变化时,它会自动失效,所以:

Template.tempname.rendered = function () {
  this.autorun(function () {
    TAPi18n.getLanguage() // make sure to invalidate if the language changes
    /* run your fancy form function here */
  ));
};

【讨论】:

    猜你喜欢
    • 2015-08-09
    • 1970-01-01
    • 2013-05-31
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 2013-09-02
    相关资源
    最近更新 更多