前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >模仿angularjs写了一个简单的HTML模版和js数据填充的示例

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

作者头像
liulun
发布2018-01-12 15:21:53
1K0
发布2018-01-12 15:21:53
举报
文章被收录于专栏:liulunliulun
代码语言:javascript
复制
<!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>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-07-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档