首页

基于jquery和bootstrap库实现多模板多数据效果切换前端源码工程下载

标签:mvc,前端,web,解耦,数据,视图层,页面,脚本库,js模板,javascript,getScript,getJSON,用法,页面加载html,ajax     发布时间:2016-08-23   
  • 云盘下载:
  • [提取码:0000]
  • 本地下载:
       ( 需积分:2  )

一、DEMO背景

基于同一种数据结构基于不同的页面展示(对于不同的页面模板)或者同一区域展示不同数据结构的需求,欲实现页面表达复杂度和数据表达形式多样化的抽象设计,从而减少开发量和前端页面代码的臃肿度。该demo是基于Jquery和bootstrap库来实现特效、解析及加载等效果。

二、源码简介

1. 主页面代码如下,该页面是主体结构部分,包含页面展示代码和解析脚本(多模板多数据加载)

<!DOCTYPE html>@b@<html> @b@    <head>@b@        <meta charset="UTF-8" />@b@        <link href="http://www.xwood.net/test/c262646/bootstrap.min.css" rel="stylesheet">@b@        <link href="http://www.xwood.net/test/c262646/bootstrap-theme.min.css" rel="stylesheet">@b@    </head> @b@    <body>  @b@        <label class="radio-inline">@b@            <input type="radio" name="template" id="template01" value="Template01" checked="checked"> 模板01 (列表模式)@b@        </label>@b@        <label class="radio-inline">@b@            <input type="radio" name="template" id="template02" value="Template02"> 模板02 (网格模式)@b@        </label> @b@        <label class="radio-inline">@b@            <input type="radio" name="data" id="data01" value="example01" checked="checked"> 数据01 (单一数据)@b@        </label>@b@        <label class="radio-inline">@b@            <input type="radio" name="data" id="data02" value="example02"> 数据02 (数组数据)@b@        </label>@b@        <label class="radio-inline">@b@            <input type="radio" name="data" id="data03" value="example03"> 数据03 (混合数据)@b@        </label> @b@        <button class="btn btn-default" type="button" onclick="loadTemplate();">加载</button>@b@ @b@        <div id="canvas" style="width:850px; height:800px; border: solid 1px #959595; padding: 10px; margin: 10px;"></div>@b@@b@        <div id="content" style="display: none;"></div>@b@@b@        <!-- Bootstrap core JavaScript @b@================================================== -->@b@        <!-- Placed at the end of the document so the pages load faster -->@b@        <script src="http://www.xwood.net/js/jquery-1.6.2.min.js"></script>@b@        <script src="http://www.xwood.net/test/c262646/bootstrap.min.js"></script>@b@        <script src="http://www.xwood.net/test/c262646/holder.js"></script>@b@        <script>@b@            function loadTemplate(){@b@                var selectedTemplate = $("input[name=template]:radio:checked").val();@b@                var selectedData = $("input[name=data]:radio:checked").val();@b@                $.ajaxSetup({async:false});@b@@b@                //加载HTML模板文件@b@                $('#canvas').load(selectedTemplate + '.html #t_frame');@b@                $('#content').load(selectedTemplate + '.html [name=t_content]');@b@                @b@                //加载相关json数据@b@                $.getJSON(selectedData + ".json", function(data,s,x){@b@                    for (var i = 0; i < data["items"].length; i++) {@b@                        var content = $("#content").html();@b@                        $('#t_frame').append( @b@                            content.replace(/{{name}}/g,data["items"][i].name)@b@                            .replace(/{{value}}/g,data["items"][i].value)@b@                        );@b@                    }@b@                });@b@@b@                //加载与html模板相对应的js文件。@b@                $.getScript(selectedTemplate + '.js');@b@                @b@            }@b@        </script>@b@    </body>@b@</html>

2. 数据展示以列表模式和网格模式两种方式说明,其最小单元结构由html页面模板构成,这边有Template01.html、Template02.html..模板单元,Template01.html内容如下

<div id="t_frame" class="list-group">@b@</div>@b@<a name="t_content" class="list-group-item" href="#">@b@  <h4 class="list-group-item-heading">{{name}}</h4>@b@  <p class="list-group-item-text">{{value}}</p>@b@</a>

3. 数据结构主要通过加装不同js的json格式来返回,如 数据01 (单一数据)对应example01.json、数据02 (数组数据)对应example02.json、数据03 (混合数据)对应example03.json,example01.json具体内容如下

{@b@    "items": [@b@        {@b@            "name": "解放J6",@b@            "value": "报价"@b@        }, {@b@            "name": "福田汽车",@b@            "value": "报价"@b@        }, {@b@            "name": "联合卡车",@b@            "value": "报价"@b@        }, {@b@            "name": "大运N8重卡",@b@            "value": "报价"@b@        }@b@    ]@b@}

4. 通过脚本的loadTemplate将数据模板合成在content的div层进行合成渲染

三、效果演示

��