在开发项目时,我们经常性的会遇到弹出框的需求,例如登陆,注册,添加信息等等....面对这一需求,我们当然也可以使用自己的双手进行编写,如果你时间充足可以试试。
今天我们讲解一下如何在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'); } }]); });