2016-06-21 57 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()。