此Meteor应用程序具有一个按钮,单击该按钮时需要调用特定功能。还有一个ActiveTaskCollection
可以存储activeTask
字段,该字段在应用程序生存期内会发生变化。
我正在尝试提出一种机制,以根据activeTask值触发正确的函数,而不必为它可以容纳的每个值编写长条件语句。
但是,仅在按钮click事件上触发该函数,而在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
最佳答案
这个方向的情况如何:
将功能存储在对象内
fCollection = {}
fCollection.a = function(){console.log('a')}
fCollection.b = function(){console.log('b')}
检索功能
fn = fCollection[getActiveTask()]
执行功能
fn()
或一口气
fCollection[getActiveTask()]()