2015-04-26 1 views
1

у меня есть событие, которое выглядит следующим образом:Метеор: вызов/запуск событий изнутри JavaScript?

Template.foo.events({ 
    'bar': function() { 
     console.log("Hello!"); 
    } 
}); 

Как позвонить/вызвать его из клиента с помощью JS? Что-то вроде:

qwe = new Event(foo); 
qwe.dispatchEvent();? 
+0

код [CustomEvent API] (https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent) (MDN ссылка) может помочь. –

ответ

0

См события в Метеор документы: http://docs.meteor.com/#/basic/Template-events

«Первая часть ключа (до первого пробела) является именем события захвата Практически любой. DOM-событие поддерживается. Некоторые являются общими: click, mousedown, mouseup, mouseenter, mouseleave, keydown, keyup, keypress, focus, blur, and change. "

Так что в вашем примере «бар» следует заменить чем-то вроде «щелчком». Это даже тогда будет запущено при нажатии на ваш шаблон.

0

Вы должны связать свой тип события с селектором CSS, чтобы позже вы могли ссылаться на целевой элемент HTML, чтобы инициировать событие программно.

По умолчанию, когда вы не укажете целевой элемент, событие будет привязано к элементу HTML верхнего уровня (firstNode) соответствующего шаблона.

Template.foo.events({ 
    "bar .foo": function() { 
    console.log("Hello!"); 
    } 
}); 

Template.foo.onRendered(function(){ 
    Meteor.setInterval(function(){ 
    var target = this.$(".foo"); 
    target.trigger("bar"); 
    }.bind(this)); 
}); 

https://api.jquery.com/trigger/