compileTemplate(template, data, style){ const escapeHtml = (string) => { var entityMap = { "&" : "&" }; return String(string).replace(/&/g, function (s) { return entityMap[s]; }); } let complieComponent = Vue.extend({ data() { return data }, methods: { totalFn(arr, key, digits = 2) { let tempArr = arr || [] let total = 0; for(let item of tempArr) { total = calculateUtil.numberAdd(total, objectUtil.getValueByPath(item, key), digits) } return total }, }, template: `<div>${template}</div>` }); var complieComponentDom = new complieComponent().$mount(); return escapeHtml(style + complieComponentDom.$el.innerHTML); // 在这里转义一遍,因为innerHTML中的字符串中如果有特殊字符会被转义 }