首先你要明白,你这段代码运行在dataviewjs代码块环境中,而你新增的列运行在dataview代码块环境中。
当你执行dataviewjs代码块中的代码的时候,脚本自然去找cards变量,并找当前file.name进行生成一个变量的值。而当执行到dataview代码块中时,${cards[file.name]})
这段代码已经是一个确切的值了,即刚才的结果,而且在dataview代码块环境中也不存在cards变量。
传值也传不了,严格来说,dataview代码块中不是js环境。
建议用dv.query实现,获取数据后再进一步处理。
可参考
或