angularJs弹性盒模型+bootstrap开发案例

angularJs结合微信的弹性盒模型+bootstrap开发前端并实现数据增加,删除功能。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script src="angular.min.js"></script>
    <script src="underscore-min.js"></script>
    <link rel="stylesheet" href="bootstrap.min.css">
    <link rel="stylesheet" href="font-awesome-4.7.0/css/font-awesome.min.css">
</head>
<body>
<style>
    .mobile {
        border  : solid 1px #999999;
        height  : 500px;
        display : flex;
    }

    .mobile dl {
        margin         : 0px;
        padding        : 0px;
        display        : flex;
        flex           : 1;
        flex-direction : column-reverse;
    }

    .mobile dl dt {
        background  : #999999;
        color       : #ffffff;
        height      : 30px;
        text-align  : center;
        border      : solid 1px #f3f3f3;
        cursor      : pointer;
        line-height : 2em;
    }

    .mobile dl dd {
        display        : flex;
        flex-direction : column;
    }

    .mobile dl dd a {
        border          : solid 1px #f3f3f3;
        text-align      : center;
        padding         : 6px;
        text-decoration : none;
    }

    .top-menu, .sub-menu {
        position : relative;
    }

    .top-menu .top-fa, .sub-menu .sub-fa {
        position : absolute;
        right    : -10px;
        top      : -10px;
        color    : #999999;
        cursor   : pointer;
        display  : none;
    }

    .top-menu:hover .top-fa, .sub-menu:hover .sub-fa {
        display : block;
    }
</style>
<div ng-app="module" ng-controller="ctrl">
    <form action="" method="post" class="form-horizontal" role="form">
        <div class="container">
            <div class="row">
                <div class="col-xs-4" class="app">
                    <div class="mobile">
                        <dl ng-repeat="v in data.button">
                            <dt ng-bind="v.name"></dt>
                            <dd>
                                <a href="" ng-repeat="d in v.sub_button" ng-bind="d.name"></a>
                            </dd>
                        </dl>
                    </div>
                </div>
                <div class="col-xs-8">
                    <div class="panel panel-default">
                        <div class="panel-heading">
                            <h3 class="panel-title">编辑</h3>
                        </div>
                        <div class="panel-body">
                            <!--一级菜单开始-->
                            <div class="panel panel-default top-menu" ng-repeat="v in data.button">
                                <i class="fa fa-times-circle top-fa fa-lg" ng-click="removeTopMenu(v)"></i>
                                <div class="panel-body">
                                    <div class="form-group">
                                        <label class="col-sm-2 control-label">标题</label>
                                        <div class="col-sm-10">
                                            <input type="text" class="form-control" ng-model="v.name">
                                        </div>
                                    </div>
                                    <div class="form-group" ng-hide="v.sub_button.length>0">
                                        <label class="col-sm-2 control-label">类型</label>
                                        <div class="col-sm-10">
                                            <label class="radio-inline">
                                                <input type="radio" ng-model="v.type" value="click"> 关键词
                                            </label>
                                            <label class="radio-inline">
                                                <input type="radio" ng-model="v.type" value="view"> 网址
                                            </label>
                                        </div>
                                    </div>
                                    <div class="form-group" ng-if="v.type=='click' && v.sub_button.length==0">
                                        <label class="col-sm-2 control-label">关键词</label>
                                        <div class="col-sm-10">
                                            <input type="text" class="form-control" ng-model="v.key">
                                        </div>
                                    </div>
                                    <div class="form-group" ng-if="v.type=='view' && v.sub_button.length==0">
                                        <label class="col-sm-2 control-label">链接</label>
                                        <div class="col-sm-10">
                                            <input type="text" class="form-control" ng-model="v.url">
                                        </div>
                                    </div>
                                    <!--二级菜单-->
                                    <div class="panel panel-default sub-menu" ng-repeat="d in v.sub_button">
                                        <i class="fa fa-times-circle sub-fa fa-lg" ng-click="removeSubMenu(v,d)"></i>
                                        <div class="panel-body">
                                            <div class="form-group">
                                                <label class="col-sm-2 control-label">标题</label>
                                                <div class="col-sm-10">
                                                    <input type="text" class="form-control" ng-model="d.name">
                                                </div>
                                            </div>
                                            <div class="form-group">
                                                <label class="col-sm-2 control-label">类型</label>
                                                <div class="col-sm-10">
                                                    <label class="radio-inline">
                                                        <input type="radio" ng-model="d.type" value="click"> 关键词
                                                    </label>
                                                    <label class="radio-inline">
                                                        <input type="radio" ng-model="d.type" value="view"> 网址
                                                    </label>
                                                </div>
                                            </div>
                                            <div class="form-group" ng-if="d.type=='click'">
                                                <label class="col-sm-2 control-label">关键词</label>
                                                <div class="col-sm-10">
                                                    <input type="text" class="form-control" ng-model="d.key">
                                                </div>
                                            </div>
                                            <div class="form-group" ng-if="d.type=='view'">
                                                <label class="col-sm-2 control-label">链接</label>
                                                <div class="col-sm-10">
                                                    <input type="text" class="form-control" ng-model="d.url">
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                    <!--二级菜单 end-->
                                    <button type="button" class="btn btn-info" ng-click="addSubButton(v)">添加菜单</button>
                                </div>
                            </div>
                            <!--一级菜单结束-->
                            <button type="button" class="btn btn-success" ng-click="addTopButton()">添加一级菜单</button>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </form>
</div>
<script>
    var m = angular.module('module', []);
    m.controller('ctrl', ['$scope', function ($scope) {
        $scope.data = {
            "button": [
                {
                    "type": "click",
                    "name": "今日歌曲",
                    "key": "V1001_TODAY_MUSIC"
                },
                {
                    "type": "view",
                    "name": "百度",
                    "url": "http://www.baidu.com",
                    "sub_button": [
                        {
                            "type": "view",
                            "name": "网易",
                            "url": "http://www.163.com/"
                        },
                        {
                            "type": "view",
                            "name": "HTML5",
                            "url": "http://www.html5.com/"
                        }
                    ]
                }
            ]
        }
        //删除一级菜单
        $scope.removeTopMenu = function (item) {
            $scope.data.button = _.without($scope.data.button, item);
        }
        //删除二级菜单
        $scope.removeSubMenu = function (topMenu, subMenu) {
            topMenu.sub_button = _.without(topMenu.sub_button, subMenu);
        }
        //添加一级菜单
        $scope.addTopButton = function () {
            var menu = {
                "type": "view",
                "name": "",
                "key": ""
            };
            if ($scope.data.button.length == 3) {
                alert('一级菜单最多为三个');
            } else {
                $scope.data.button.push(menu);
            }
        }
        //添加二级菜单   houdunren.com
        $scope.addSubButton = function (item) {
            var menu = {
                "type": "view",
                "name": "",
                "key": ""
            };
            if (!item.sub_button) {
                item.sub_button = [];
            }
            if (item.sub_button.length == 5) {
                alert('二级菜单最多为五个');
            } else {
                item.sub_button.push(menu);
            }
        }
    }]);
</script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泠泠在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值