案例:通过 ${data[0][‘sys_user.user_id’]} 这样的方式从数组对象中获取值 本案例返回的是html字符串 并且返回以以替换后的值
//data = {ob:Observer} // {data:Array(1)} {sys_user.usser_id:‘1’,sys_user.user_name:‘admin’}
function getJsoinDataFromStr(data,str){
let html = str;// like …
${data[0][‘sys_user.user_id’]} let matchs = str.match(/${[a-zA-Z._0-9-[]’"]]+}/g) // matchs=["${data[0][‘sys_user.user_id’]}"] let myData= Object.assign({},data)myData.data = data
window.cusRenderData = data if(matchs){ matchs.forEach(item => { // item = ${data[0][‘sys_user.user_id’]} let keyNames = ‘cusRenderData.’+ item.slice(2,-1) html = html.replace(item.eval(keyNames)) }) }
delete window.cusRenderData return html }
注意 “${data[0][‘sys_user.user_id’]}”.slice(2,-1) 返回的值为data[0][‘sys_user.user_id’]
使用eval(keyNames) 函数可以将keyNames中的数据计算出来