• angular-ui-bootstrap弹出框的使用(一)


    在开发项目时,我们经常性的会遇到弹出框的需求,例如登陆,注册,添加信息等等....面对这一需求,我们当然也可以使用自己的双手进行编写,如果你时间充足可以试试。

    今天我们讲解一下如何在angular框架的项目中使用弹出框,首先的普及一下,angular是一个发展已久的前端框架,相对比较成熟了,值得庆幸的是angular它有自己的一套ui模块,里面封装了一系列我们项目中需要经常使用并且十分复杂的玩意儿。

    这了给出官网地址,有兴趣可以研究研究:http://angular-ui.github.io/bootstrap/versioned-docs/1.3.2/#/accordion

    在这里了我们主要讲解一下如何使用angular-ui的弹出框,

    首先我们要指出一个难点:如何进行数据的交互....(你可自己思考考)

    ..........2小时过去了。。。

    这里直接给出例子:

    一点申明:我的项目中使用了requireJS,

    详细描述:

    1、使用弹出框的页面(html)<这里只做简单的事例>

    路由的配置:

     .state('home.ideas.test', {//(测试)
                    url: '/test',
                    views: {
                        "part": {
                            templateUrl: 'tpls/ideas/test.html',
                            controller:"idea_test_ctrl"
                        }
                    }
                })

    html:(tpls/ideas/test.html)

    <div>
        <button ng-click="open_modal()">开</button>
        this is test page
    </div>

    弹出框对应的模板html:(弹出框一般都有一个"确定","取消"按钮,在这两个按钮上我们可以进行一系列的回调操作,例如值的传递

    <div>
        {{bbb}}
        <input type="text" ng-model="aaa"/>
        <button ng-click="ok_click()">确定</button>
        <button ng-click="cancle()">取消</button>
    </div>
    idea_test_ctrl:(js文件)
    define(["app"], function (myapp) {
        myapp.controller('idea_test_ctrl',
               [ '$scope',
                '$rootScope',
                '$state','$uibModal',
                function (s,rs,$state,$uibModal) {
                    console.log(" 测试的Ctrl");
                    s.open_modal = function () {
                        var modalInstance = $uibModal.open({
                            animation: true,//是否开启动画
                            templateUrl: 'tpls/ideas/modal_test.html',//弹出框的模板html
                            controller: 'modal_in_ctrl',//弹出框的模板控制器
                            size:'lg',//弹出框的大小
                            resolve: {//resolve:可用于将页面的数据传输到模板控制器中,进而显示到弹出框模板
                                fnitems: function(){
                                    return "这是从原来控制器带来的值";
                                },
                                item2:456
                            }
                        });
                        modalInstance.result.then(function (data) {//第一个回调函数:的data来自s.ok_click,第二个回调函数的值来自s.cancel
                            console.log(data);
                        }, function (data) {
                            console.log(data);
                        });
                    };
                }]
        )
        myapp.controller('modal_in_ctrl',["$scope","fnitems","$uibModalInstance",function(s,fnitems,$uibModalInstance){//$uibModalInstance用于接受弹出模板的回调
            s.bbb=fnitems;
            s.ok_click=function(){
                $uibModalInstance.close(s.aaa);
            }
            s.cancle=function(){
                $uibModalInstance.dismiss('这是cancle');
            }
        }]);
    });
  • 相关阅读:
    JavaScript(五)对象
    JavaScript(四)字符串类型
    JavaScript(三)数值类型
    JavaScript(二)数据类型
    JavaScript(一)基本语法
    ES6总结
    HBuilderX真机调试检测不到魅族手机
    安装Ubuntu 20.04 LTS服务器系统
    Windows进程通信(IPC)之共享内存
    C++代理模式的实现
  • 原文地址:https://www.cnblogs.com/evaling/p/6826960.html
Copyright © 2020-2023  润新知