2015-10-27 3 views
1

с использованием Meteor JS, я хотел бы запустить базовую функцию jQuery (которая будет изменять размер некоторых элементов) каждый раз при загрузке шаблона. Я попытался вызвать эту функцию внутри Meteor.startup(), но это не сработает. Я также попытался запустить свою функцию на Router.onBeforeAction() без каких-либо результатов (im using ironRouter).Meteor JS - функция запуска после загрузки каждого шаблона

Есть ли способ сделать что-то вроде:

Template.someTemplate.created = function(){ 
    myUpdateFunction(); 
}; 

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

Есть ли способ добиться этого?

Спасибо.

ответ

2

Это будет регистрировать имя каждого шаблона после его создания:

Template.prototype.created = function() { 
    console.log(this.view.name); 
} 

Однако ваш JQuery потребуется шаблон быть вынесено, так что вероятно, будет работать лучше:

Template.prototype.rendered = function() { 
    console.log(this.view.name); 
} 
1

мне удалось для достижения его упаковки Blaze._fireCallbacks:

Blaze._fireCallbacks = (function(_fireCallbacks) { 
    return function(view, which) { 
    _fireCallbacks(view, which) 
    if(which === 'rendered') { 
     //Add your logic here 
    } 
    } 
})(Blaze._fireCallbacks) 

не может быть самое простое решение. См. Демо-версию on this pad.

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