zoukankan      html  css  js  c++  java
  • 简易模板字符串替换

    function template(wrapParent,data){
      var wrapParent = getObj(wrapParent);
      var tplhtml = getAttr(wrapParent, "data-html");
      var tplstr = getObj(tplhtml).innerHTML;

      var re = /{{s*(w+)s*}}/g;


      if(data instanceof Array){
        var strtemp = '';
        for(var i=0; i<data.length; i++){
          strtemp += dataHtmlStr(data[i]);
        }
        wrapParent.innerHTML = strtemp;
      }else if({}.toString.call(data).split(" ")[1].toLowerCase().slice(0,-1)== 'object'){
        wrapParent.innerHTML = dataHtmlStr(data);
      }else{
        throw '数据格式不正确!';
      }

    function dataHtmlStr(data){
      return (function(){
        return tplstr.replace(re,function(matchs,key){
          return data[key];
        })
      })();
    }

      function getObj(id){
        return document.getElementById(id);
      }

       function getAttr(obj,attr){
         return obj.getAttribute(attr);
       }
    }

    调用:

    var data = {
      name : 'zhl',
      age : 30,
      showbool : false
    };

    template('context',data);

  • 相关阅读:
    Ehcache缓存配置
    spring3使用task:annotation-driven开始定时
    Constructor >> @Autowired >> @PostConstruct
    面试转载
    阿里面试:MYSQL的引擎区别
    Redis的主从复制的原理介绍
    微服务的调用链
    java的零拷贝机制
    存储过程与触发器面试
    ABA问题
  • 原文地址:https://www.cnblogs.com/vsmart/p/6292928.html
Copyright © 2011-2022 走看看