在使用插件jquery.JST时,插件内使用了new Function来生成模板,模板字符串中调用了其他js定义的方法,于是会报错xxx is not defined,下面以最小代码来展示如何修改。
// 首先引入其他js定义的externalFunc方法
import { externalFunc } from "externalModule"
// 这是引用的插件,需要调用externalFunc方法
let funA = new Function("externalFunc()")
funA() // 会报错 xxx is not defined
// 改法1
let funB = new Function("externalFunc", "externalFunc()")
funB(externalFunc)
// 改法2
let funC = new Function("ext", "ext.externalFunc()")
funC({ externalFunc })