2016-10-20 29 views
0

我对Meteor和Blaze很新颖,所以我很抱歉如果这里有些事情不清楚......但是我想在我的产品中实现这个'产品快速查看'https://codyhouse.co/gem/css-product-quick-view/流星项目。从childern中获取每个语句中生成的'onRendered'js代码

当我不使用每个语句时,动画效果很好。在每个语句中,数据上下文都会改变,当我点击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/ 

回答

0

这解决了这一问题

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/