在Meteor中,有条件地添加一组事件处理程序的最佳方法是什么?
例如,我尝试按照以下代码执行此操作(此代码不起作用,但您会了解我尝试实现的目标。)
Template.page_article.events( function(){
if (something){
return {
some_event_name1,
some_event_name2,
}
} else {
return {
some_event_name3,
some_event_name4,
}
}
})
最好的方法是什么?我试图在events()之外设置一个变量,但我不喜欢这个解决方案,因为变量在所有其他模板之间共享。
答案 0 :(得分:0)
您尝试实现的目标对我来说听起来不是一个糟糕的解决方案,但这是一种方法:
Template.page_article.events((function(){
if (something){
return {
'<event>': function(){ console.log("A1") },
'<event>': function(){ console.log("A2") }
}
} else {
return {
'<event>': function(){ console.log("B1") },
'<event>': function(){ console.log("B2") }
}
}
})())
修改强>
通过添加评论,这听起来确实是一个糟糕的解决方案。做这样的事情:
Template.page_article.events({
'<event>': function(event, template){
if(something){
console.log("Do something A1")
}else{
console.log("Do something B1")
}
}
'<event>': function(event, template){
if(something){
console.log("Do something A2")
}else{
console.log("Do something B2")
}
}
})