angularJS树形菜单

入门菜鸟程序猿 2017-03-03 11:49:00
本人新入IT行业 现需要学习angularjs 想明白 angularjs树形菜单是怎么写的 求大神告知!!!!
...全文
4225 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
当你使用 angularjs或者别的框架(例如微软的 knockout,或者国产 Vue 框架)的时候,你可以在这个例子的 html 上直接使用 html模板(或者组件)的方式来动态绑定千变万化的数据,而其 js 部分其实也可以相应的框架的事件定义方式来声明到 html 模板上,而不需要像这个例子的 js 代码那样去单独写好几行 js 代码。 事实上,使用前端框架,要比这个例子更高效、更强壮,更简洁,扩展性更高。当然刚学 angularjs 可能费点力气,但是一旦会了,那么你会明白这里的代码在 angularjs 中不过就是3、4行数据绑定代码的事情。使用前端框架,开发web应用非常简单方便。
  • 打赏
  • 举报
回复
从这个例子其实可以看出前端技术的大致比例: css 负责画线,它处理静态的“类型”修饰部分,非常好用。 html 负责数据架构。实际上前端框架还是使用“htm 模板+ ViewModel”结合来处理这些。不过这个例子很死板、比较初级、并没有强调数据千变万化后的通用性,所以它直接写成了html来代表了<ul><li>这样的数据。但是这起码也说明了,在 html 中重点是描述数据结构,而把样子(样式)分离到css中。 最后是js代码部分负责处理点击事件、加载事件等事件驱动的动态代码。代码当然是写的越少越好,这个例子就比较清晰,因为它明显是用来补充 css 所不容易表达的动画切换样式。注意这里是以设计为主,而不是代码为主。有些非常差的团队总是强调编程者来指挥设计,这是一种错误的思路。前端编程是用来填补设计设计的不足,编程应该“跟随”设计,而不是“指挥”设计。 从这个例子,非常清晰地看出了前端开发的职能分工。注意并不会要招聘多少种不同的人,而是一个人做一个事情要对事情的各个方面的技术有个分别,摆正每一个方面的比例和依赖关系。
  • 打赏
  • 举报
回复
这是一个从网上抄来的代码,你可以看一下
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial=1.0, user-scalable=no, target-densitydpi=medium-dpi" />
    <link href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" />
    <style>
        .tree {
            min-height: 20px;
            padding: 19px;
            margin-bottom: 20px;
            background-color: #fbfbfb;
            border: 1px solid #999;
            -webkit-border-radius: 4px;
            -moz-border-radius: 4px;
            border-radius: 4px;
            -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
            -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
            box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
        }

            .tree li {
                list-style-type: none;
                margin: 0;
                padding: 10px 5px 0 5px;
                position: relative;
            }

                .tree li::before, .tree li::after {
                    content: '';
                    left: -20px;
                    position: absolute;
                    right: auto;
                }

                .tree li::before {
                    border-left: 1px solid #999;
                    bottom: 50px;
                    height: 100%;
                    top: 0;
                    width: 1px;
                }

                .tree li::after {
                    border-top: 1px solid #999;
                    height: 20px;
                    top: 25px;
                    width: 25px;
                }

                .tree li span {
                    -moz-border-radius: 5px;
                    -webkit-border-radius: 5px;
                    border: 1px solid #999;
                    border-radius: 5px;
                    display: inline-block;
                    padding: 3px 8px;
                    text-decoration: none;
                }

                .tree li.parent_li > span {
                    cursor: pointer;
                }

            .tree > ul > li::before, .tree > ul > li::after {
                border: 0;
            }

            .tree li:last-child::before {
                height: 30px;
            }

            .tree li.parent_li > span:hover, .tree li.parent_li > span:hover + ul li span {
                background: #eee;
                border: 1px solid #94a0b4;
                color: #000;
            }
    </style>
</head>
<body>
    <div class="tree well">
        <ul>
            <li>
                <span><i class="glyphicon glyphicon-folder-open"></i>Parent</span> <a href="">Goes somewhere</a>
                <ul>
                    <li>
                        <span><i class="glyphicon glyphicon-minus-sign"></i>Child</span> <a href="">Goes somewhere</a>
                        <ul>
                            <li>
                                <span><i class="glyphicon glyphicon-leaf"></i>Grand Child</span> <a href="">Goes somewhere</a>
                            </li>
                        </ul>
                    </li>
                    <li>
                        <span><i class="glyphicon glyphicon-minus-sign"></i>Child</span> <a href="">Goes somewhere</a>
                        <ul>
                            <li>
                                <span><i class="glyphicon glyphicon-leaf"></i>Grand Child</span> <a href="">Goes somewhere</a>
                            </li>
                            <li>
                                <span><i class="glyphicon glyphicon-minus-sign"></i>Grand Child</span> <a href="">Goes somewhere</a>
                                <ul>
                                    <li>
                                        <span><i class="glyphicon glyphicon-minus-sign"></i>Great Grand Child</span> <a href="">Goes somewhere</a>
                                        <ul>
                                            <li>
                                                <span><i class="glyphicon glyphicon-leaf"></i>Great great Grand Child</span> <a href="">Goes somewhere</a>
                                            </li>
                                            <li>
                                                <span><i class="glyphicon glyphicon-leaf"></i>Great great Grand Child</span> <a href="">Goes somewhere</a>
                                            </li>
                                        </ul>
                                    </li>
                                    <li>
                                        <span><i class="glyphicon glyphicon-leaf"></i>Great Grand Child</span> <a href="">Goes somewhere</a>
                                    </li>
                                    <li>
                                        <span><i class="glyphicon glyphicon-leaf"></i>Great Grand Child</span> <a href="">Goes somewhere</a>
                                    </li>
                                </ul>
                            </li>
                            <li>
                                <span><i class="glyphicon glyphicon-leaf"></i>Grand Child</span> <a href="">Goes somewhere</a>
                            </li>
                        </ul>
                    </li>
                </ul>
            </li>
            <li>
                <span><i class="glyphicon glyphicon-folder-open"></i>Parent2</span> <a href="">Goes somewhere</a>
                <ul>
                    <li>
                        <span><i class="glyphicon glyphicon-leaf"></i>Child</span> <a href="">Goes somewhere</a>
                    </li>
                </ul>
            </li>
        </ul>
    </div>
    <br />
    <input type="button" value="打印" onclick="window.print()" />

    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>


    <script type="text/javascript">
        $(function () {
            $('.tree li:has(ul)').addClass('parent_li').find(' > span').attr('title', 'Collapse this branch');
            $('.tree li.parent_li > span').on('click', function (e) {
                var children = $(this).parent('li.parent_li').find(' > ul > li');
                if (children.is(":visible")) {
                    children.hide('fast');
                    $(this).attr('title', 'Expand this branch').find(' > i').addClass('glyphicon-plus-sign').removeClass('glyphicon-minus-sign');
                } else {
                    children.show('fast');
                    $(this).attr('title', 'Collapse this branch').find(' > i').addClass('glyphicon-minus-sign').removeClass('glyphicon-plus-sign');
                }
                e.stopPropagation();
            });
        });
    </script>
</body>
</html>
  • 打赏
  • 举报
回复
引用 1 楼 EnForGrass的回复:
有现成的啊,自己搜,不止如下 angular-ui-tree,ng-tree, ng-jstree
我的ledaer不允许使用现成的树型控件 需要自己写一个树型菜单。。。。。
EnForGrass 2017-03-03
  • 打赏
  • 举报
回复
有现成的啊,自己搜,不止如下 angular-ui-tree,ng-tree, ng-jstree
EnForGrass 2017-03-03
  • 打赏
  • 举报
回复
那你去研究下其中一个,再自己写

1,978

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧