此Meteor应用程序有一个按钮,单击该按钮时需要调用特定功能。还有一个ActiveTaskCollection
来存储activeTask
字段,该字段会在应用有效期内发生变化。
我试图找到一种机制来根据activeTask值触发正确的函数,而不必为它可以容纳的每个值写一个长条件语句。
但是只在按钮单击事件上触发该函数,而在activeTask更改时不反应。
这是我的大脑“转储”,如何实现?感谢
function a (){console.log{'a'}}
function b (){console.log{'b'}}
activeTask: 'a'
function.call(Col.findOne({last document}).activeTask); // invokes function a
activeTask: 'b'
function.call(Col.findOne({last document}).activeTask); // invokes function b
答案 0 :(得分:4)
这方面的事情怎么样: 将函数存储在对象中
fCollection = {}
fCollection.a = function(){console.log('a')}
fCollection.b = function(){console.log('b')}
检索功能
fn = fCollection[getActiveTask()]
执行功能
fn()
或一气呵成
fCollection[getActiveTask()]()