Доступ к родительскому jS-коду onRendered из childern, сгенерированному в каждом выражении

Я довольно новичок в Meteor и Blaze, поэтому мне жаль, если что-то здесь неясно... Но я хочу реализовать этот "Быстрый просмотр продукта" https://codyhouse.co/gem/css-product-quick-view/ in мой проект Метеор.

Анимация работает отлично, когда я не использую каждое утверждение. В каждом утверждении контекст данных изменяется, и когда я нажимаю cd-trigger, ничего не происходит. Как я могу получить доступ к коду внутри ParentTemplate.onRendered для этого дочернего шаблона? Есть ли какое-то решение этой проблемы?

<template name="ParentTemplate">
   {{> Product}} // works properly

   {{#each products}} // does not work
     {{> Product}}
   {{/each}}
</template>

<template name="Product">
  <li class="cd-item">
     <img src="img/item-1.jpg" alt="Item Preview">
     <a href="#0" class="cd-trigger">Quick View</a>
  </li> <!-- cd-item -->
</template>

и файл.js

Template.ParentTemplate.onRendered( function () {
//open the quick view panel
$('.cd-trigger').on('click', function(event){
    console.log('Hello!');
    var selectedImage = $(this).parent('.cd-item').children('img'),
        slectedImageUrl = selectedImage.attr('src');

/the code continues but it is very long/

1 ответ

Это решило проблему

Template.ParentTemplate.onRendered( function () {
this.autorun(() => {
   if (this.subscriptionsReady()) {
      //open the quick view panel
      $('.cd-trigger').on('click', function(event){
         console.log('Hello!');
         var selectedImage = $(this).parent('.cd-item').children('img'),
         slectedImageUrl = selectedImage.attr('src');

/the code continues but it is very long/
Другие вопросы по тегам