在匿名函数中获取ReactiveVar

时间:2015-10-19 17:20:12

标签: meteor meteor-react

我正在使用meteor reactive-var包。如何在模板的js文件中定义的匿名函数中获取反应变量? viewer.js:

Template.viewer.helpers({
    counter: function () {
        return Template.instance().counter.get();
    }
});

Template.viewer.onCreated(function() {
    this.counter =  new ReactiveVar(0);
});

Template.viewer.onRendered(function(e){
    viewerRendered();
});

function getCounter() {
    // !!Return reactive counter variable
}

function viewerRendered() {
    var counter = getCounter();
    $(document).trigger("ViewerCreated",counter);
}

感谢。

1 个答案:

答案 0 :(得分:1)

如果您需要通过onRendered()回调访问外部函数中的当前模板,您有多种方法:

  1. 使用外部函数作为直接回调:

    Template.viewer.onRendered(viewerRendered)
    
    function viewerRendered() {
      let currentTemplate = this
      //...
    }
    
  2. 将当前模板作为参数传递:

    Template.viewer.onRendered(function() {
      viewerRendered(this)
    })
    
    function viewerRendered(currentTemplate) {
      //...
    
  3. JavaScript函数非常灵活,因为this是动态的,还有其他方法可以访问数据 以上两个是简单的用例。

    您可以使用模板进行任何操作,例如使用data访问subscriptions ...