2015-10-19 5 views
1

Я использую метеор реактивный-var пакет. Как я могу получить реактивную переменную в анонимной функции, которая определена в js-файле шаблонов? viewer.js:Get ReactiveVar в анонимной функции

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

Если вам необходимо получить доступ текущий шаблон во внешней функции через onRendered() обратного вызова, то есть несколько способов:

  1. Использование внешней функции в качестве прямого обратного вызова:

    Template.viewer.onRendered(viewerRendered) 
    
    function viewerRendered() { 
        let currentTemplate = this 
        //... 
    } 
    
  2. Передача текущего шаблона в качестве параметра:

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

Функции JavaScript довольно гибкие, так как this является динамическим, есть другие способы доступа к данным.
Два вышеуказанных простых использования.

Вы можете делать все, что вы хотите с шаблоном, такие как доступ к его data, используя subscriptions ...

Смежные вопросы