此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()]()

09-18 00:59