2016-06-21 59 views
0

当用户调用click .list-item事件时,此流星客户端代码尝试将css类应用于选定的li。问题是li风格是在事件被调用后产生的,所以当时没有引用它。模板助手和基于会话的事件

但我需要模板从'列表'会话呈现新数据,然后应用样式。如何做到这一点?由于

Template.checks.helpers({ 
    'values': function() { 

    //has the array of items for the template helpers 
    return Session.get('list'); 
    } 
}); 

Template.checks.events({ 
    'click .list-item': function() { 

    //modifies Session 'list' 
    utility.setList(); 

    //Applies the styling to certain list items. 
    utility.checksFiltering($('input.check-filter').val()); 
    } 
}); 
+1

与其使用jQuery,您可以将“isChecked”布尔值添加到列表数组中的相关项目。然后,您可以直接在模板中使用该值。 –

+0

@DavidWeldon jQuery只是为了获取一些用户输入,这些用户输入被用作添加样式类的函数的参数。 –

回答

0

充分利用checksFiltering发生毕竟当前排队的任务已经完成:

Meteor.defer(function() { 
    utility.checksFiltering($('input.check-filter').val()); 
}); 

这可能会工作,但如果SETLIST()等待的东西,安排新的跟踪事件,例如,一个新的订阅。在这种情况下,您需要根据setList()中的某个ready()回调调用checkFiltering()。