模仿angularjs写了一个简单的HTML模版和js数据填充的示例

简介: //框架代码 $(function () { $("[up-ctl]").
<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
    <script language="javascript" type="text/javascript" src="jquery-1.11.1.min.js"></script>
    <script language="javascript" type="text/javascript">        
        //框架代码
        $(function () {
            $("[up-ctl]").each(function (i, item) {
                var parent = $(this);
                var ctl = parent.attr("up-ctl");
                var tar = window[ctl]();//执行用户的ctl方法
                //parent.data("_data", tar);//以后可能会用到

                var str = parent.html().replace(/##(.+?)##/g, function (e1, e2) {
                    var res = tar[e2];
                    if (res == undefined || res == null) {
                        return e1;
                    } else {
                        return res;
                    }
                });
                parent.html(str);

                parent.find("[up-repeat]").each(function (i, item) {
                    var repeat = $(this);
                    var itemAttr = repeat.attr("up-repeat");
                    for (var i = 0; i < tar[itemAttr].length; i++) {
                        var repeatStr = repeat.html().replace(/{{(.+?)}}/g, function (e1, e2) {
                            var res = tar[itemAttr][i][e2];
                            if (res == undefined || res == null) {
                                return e1;
                            } else {
                                return res;
                            }
                        });
                        repeat.after(repeatStr);
                    }
                    repeat.remove();
                });
            })
        });
    </script>
    <script>
        //用户代码
        function ctl1() {
            var obj = {};
            obj.title = "这是一个对象";
            obj.items = [];
            for (var i = 0; i < 20; i++) {
                var item = {};
                item.title = "第" + i + "个";
                item.index = i;
                obj.items.push(item);
            }
            return obj;
        }
    </script>
</head>
<body>
    <div up-ctl="ctl1">
        <h1>##title##</h1>
        <ul>
            <li up-repeat="items">
                {{index}}:{{title}}<br />
            </li>
        </ul>
    </div>
</body>
</html>

  

目录
相关文章
|
24天前
|
前端开发 JavaScript
用HTML CSS JS打造企业级官网 —— 源码直接可用
必看!用HTML+CSS+JS打造企业级官网-源码直接可用,文章代码仅用于学习,禁止用于商业
103 1
|
29天前
|
前端开发 JavaScript 安全
HTML+CSS+JS密码灯登录表单
通过结合使用HTML、CSS和JavaScript,我们创建了一个带有密码强度指示器的登录表单。这不仅提高了用户体验,还帮助用户创建更安全的密码。希望本文的详细介绍和代码示例能帮助您在实际项目中实现类似功能,提升网站的安全性和用户友好性。
41 3
|
1月前
|
JavaScript
JS鼠标框选并删除HTML源码
这是一个js鼠标框选效果,可实现鼠标右击出现框选效果的功能。右击鼠标可拖拽框选元素,向下拖拽可实现删除效果,简单实用,欢迎下载
41 4
|
1月前
|
移动开发 HTML5
html5+three.js公路开车小游戏源码
html5公路开车小游戏是一款html5基于three.js制作的汽车开车小游戏源代码,在公路上开车网页小游戏源代码。
55 0
html5+three.js公路开车小游戏源码
|
1月前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
101 6
|
2月前
|
移动开发 人工智能 前端开发
介绍一些免费 的 html 5模版网站 和配色 网站
介绍一些免费 的 html 5模版网站 和配色 网站
320 3
|
2月前
|
XML 前端开发 JavaScript
前端开发进阶:从HTML到React.js
【10月更文挑战第9天】前端开发进阶:从HTML到React.js
|
2月前
|
JavaScript 前端开发
电话号码正则表达式 代码 javascript+html,JS正则表达式判断11位手机号码
电话号码正则表达式 代码 javascript+html,JS正则表达式判断11位手机号码
122 1
|
2月前
|
机器学习/深度学习 JSON JavaScript
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
36 0
|
3月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)