平时我们使用ajax请求完数据后通常都会有 一个渲染数据的过程,最开始的时候我的做法是在html界面做好数据模板,使用一些类似于angular的标记,然后用使用replace函数替换这些标记为真实的数据,后来再学习过程中找到了一个更加简洁的方法。该方法使用了正则表达式中的捕获数组的方法,完美实现了数据的渲染。

var regexp = /(?:\{\{)([a-zA-z][^\s\}]+)(?:\}\})/g
function render(template, data) {
     return template.replace(regexp, function(fullMatch, capture) {           if (data[capture]) {                return data[capture];           } else {                return fullMatch;           }      }); }
window.renderTemplate = render;

核心代码如上,我们这里定义的正则是匹配{{}}里面的数据,这个render方法传递了两个参数,一个是模板,一个是要渲染的数据,比如我们定义模板 的dom 结构为   <table><tr><td>{{aa}}</td></tr></table>,返回数据为json,同样包含{aa:"真实的值"},那么我们调用完render(template,data)后得到的就是带上真实数据的模板了,大家可以尝试一下。假如项目小可以试着自己写渲染模板。

相关文章:

  • 2022-12-23
  • 2021-10-26
  • 2021-11-19
  • 2021-12-22
  • 2021-12-20
  • 2021-09-08
猜你喜欢
  • 2022-12-23
  • 2021-12-02
  • 2022-12-23
  • 2021-07-19
  • 2022-12-23
  • 2021-11-30
  • 2022-12-23
相关资源
相似解决方案