• 学习在requirejs下如何使用underscore.js模板


    近期在学习underscore.js 这个小而美的js库,是前端 MVC 框架backbone依赖库,他的模板方法主要应用场景是ajax交互过程到页面需要大量的字符串拼接,这部分如果一旦不够仔细就很容易拼错,而underscore.js的模板很好的解决了这个问题。自己做了个小小的练习,在requirejs下如何使用underscore.js模板。

    首页un.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>underscore.js</title>
    </head>
    <body>
        <div id="wraper">111</div>
       <script data-main="js/un" src="require.js"></script> <!-- data-main 指定的入口函数 -->
        <script type="text/javascript">
            require.config({
                baseUrl:'js',//指定目录
                paths:{
                    jquery:'static/jquery-1.10.2.min',//指定jquery位置
                    underscore:'static/underscore'  //指定underscore位置
                },
                urlArgs: "bust=" +  (new Date()).getTime() //时间戳,清缓存的
            })
        </script>
        <script type="text/template" id="tpl"><!-- underscore.js  id是钩子 注意是text/template -->
        <%_.each(obj,function(item){%>
              <ul>
                  <li>
                      <a href="<%=item.url%>">
                          <%=item.name %>
                      </a>
                      <span><%=item.time%></span>
                      <%if(item.sub !== ''){%>
                          <%_.each(item.sub,function(k){%>
                              <b><a data-id=<%=k.id%> href="javascript:;" class="b"><%=k.name%></a></b>
                          <%})%>
                      <%}else{%>
                          
                      <%}%>
                  </li>
              </ul>
          <%})%>
        </script>
    </body>
    </html>

    我将requirejs 放到了 与 un.html平行的目录  具体到项目中 可能就不能这样放了。

    下面是un.js

    require(['jquery','underscore','cache'],function($,U,C){    //指定了依赖jq,underscore ,cache
      C.putCode(); //应用cache.js的东西 练习用的 没有实际意义。
        var data = [
                        {id:11,name:'aaa',age:31,url:'http://www.baidu.com',time:'12345',sub:[{id:'9999',name:'删除'},{id:8888,name:'删除'},{id:7777,name:'删除'}]},
                        {id:23,name:'bbb',age:66,url:'http://www.qiban365.com',time:'021545'},
                        {id:24,name:'ccc',age:99,url:'http://www.cnblogs.com',time:'45456456456'}
                   ];
    
        var text = _.template($('#tpl').html());
        
        $("#wraper").html(text(data));
        
        //$("#wraper").html(_.template($("#tpl").html(),data));//这个不好使
    
        $(document).on('click','.b',function(){   //冒泡点击事件
            console.log($(this).attr('data-id'));
            if($(this).length !== ''){
                $(this).remove();
            }
        })
        
        
    
    })
  • 相关阅读:
    四.Oracle聚合函数和内外全连接
    三.Oracle常用数据类型及单行函数总结
    二.Sql语言的分类及运算符
    一.Oracle的安装与连接
    Maven环境的配置
    javaSE基础总结篇04
    javaSE基础总结篇03
    javaSE基础总结篇02
    JavaSE基础篇总结01
    表分区
  • 原文地址:https://www.cnblogs.com/junwu/p/4992124.html
Copyright © 2020-2023  润新知