我有像下面这样的样本模板我想用json对象值替换学校,babydet.name,部门,babydet.section.secname如何做到这一点,请帮助我解决这个问题。
var Template1 = 'Welcome to the {{school}} baby {{babydet.name}}'
var Template2 = 'Welcome to the school {{school}} department {{dept}} babydetails {{babydet.name}} {{babydet.section.secname}}'
const namelist1= [{school:'GOVSchool',babydet: { name: 'shanker' }}];
const namelist2= [{school:'GOVSchool',dept:'CS',babydet: { name: 'shanker',section:{sectname:'A Section'}}}];借助字符串替换需要实现这一点(单逻辑)。输出想要这样的“欢迎来到这个世界,宝贝香客”
发布于 2017-03-06 11:31:48
如果lodash.js可用,您可以对其使用_.template函数。更多细节here。
var Template1 = 'Welcome to the {{school}} baby {{babydet.name}}'
var Template2 = 'Welcome to the school {{school}} department {{dept}} babydetails {{babydet.name}} {{babydet.section.secname}}'
var namelist1= [{school:'GOVSchool',babydet: { name: 'shanker' }}];
var namelist2= [{school:'GOVSchool',dept:'CS',babydet: { name: 'shanker',section:{sectname:'A Section'}}}];
_.templateSettings.interpolate = /{{([\s\S]+?)}}/g;
var interpolator = _.template(Template1);
var interpolated = interpolator(namelist2[0]);
console.log(interpolated)
interpolator = _.template(Template2);
interpolated = interpolator(namelist2[0]);
console.log(interpolated)<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
发布于 2017-03-06 11:33:41
您可以使用ES6 Template literals对字符串进行插值。为了只回答您提出的问题,我将做一些基本假设(并在本例中对它们进行硬编码):您的JSON是从namelist数据解析的某个对象的替代变量,您知道它的结构,并且您知道如何迭代数据数组以使此解决方案在现实世界中有用。
模板文字用反引号"" instead of quotes, and you surround your variables with${/ reference variable /}`“括起来
const namelist1= [{school:'GOVSchool',babydet: { name: 'shanker' }}];
const namelist2= [{school:'GOVSchool',dept:'CS',babydet: { name: 'shanker',section:{sectname:'A Section'}}}];
let Template1 = `Welcome to the ${namelist1[0].school} baby ${namelist1[0].babydet.name}`;
let Template2 = `Welcome to the school ${namelist2[0].school} department ${namelist2[0].dept} babydetails ${namelist2[0].babydet.name} ${namelist2[0].babydet.section.sectname}`;发布于 2017-03-06 12:12:34
你可以使用这个库来进行字符串插值。https://www.npmjs.com/package/string-format.String::format是一个用于格式化字符串的小型JavaScript库,它基于Python的str.format()。
https://stackoverflow.com/questions/42616982
复制相似问题