1

我正在使用meteor reactive-var 包。如何在模板的 js 文件中定义的匿名函数中获取反应变量?查看器.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);
}

谢谢。

4

1 回答 1

1

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

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

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

    Template.viewer.onRendered(function() {
      viewerRendered(this)
    })
    
    function viewerRendered(currentTemplate) {
      //...
    

JavaScript 函数非常灵活,因为this它是动态的,还有其他访问数据的方法。
以上两个是简单的用例。

你可以对模板做任何你想做的事情,比如访问它的数据,使用订阅......

于 2015-10-20T14:28:11.747 回答