流星 - 重新渲染后运行代码'

时间:2014-12-19 08:41:33

标签: meteor dependencies fancyform

在Meteor重新呈现'?

后如何运行功能

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

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

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

我该怎么做?我已经阅读(并且努力理解)依赖关系......这是相关的吗?那有点矫枉过正吗?任何指针都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

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 */
  ));
};