uibmodal模态框打开另一个模态框_AngularJs 弹出模态窗口 $modal $uibModal

本文介绍了如何在AngularJS应用中利用ui-bootstrap库的$uibModal服务打开模态窗口,并展示了如何在模态窗口之间进行数据交互。通过创建一个选择部门的模态窗口,并详细说明了模态窗口的配置、控制器定义以及模板缓存的过程。在选择部门模态窗口中,详细阐述了加载部门数据、节点选择和关闭模态窗口的逻辑。
摘要由CSDN通过智能技术生成

使用angularJs 的指令库 ui-bootstrap 弹出模态窗口:

导入ui-bootstrap-tpls.js 这个是ui-bootstrap的库,版本 1.1.0 (老版本的注入对象$modal)

注入服务:'$uibModal',和$$uibModalInstance

打开窗口:

$angular.module("app",['ui.bootstarp','mlm/erp/modal/choose-department.html']).controller(function(){

var openChooseDepModal=function(confim,canel){

var modalInstance = $uibModal.open({

//backdrop:false,

size:'sm',

animation:true,

templateUrl: 'mlm/erp/modal/choose-department.html',

controller:'chooseDeptController',

resolve: {

nodes:function(){

return $scope.nodes;

}

}

});

/* modalInstance.opened.then(function(){//模态窗口打开之后执行的函数

console.log('modal is opened');

}); */

modalInstance.result.then(function (result) {

console.log(result); //result关闭是回传的值

}, function (reason) {

console.log(reason);//点击空白区域,总会输出backdrop click,点击取消,则会暑促cancel

});

}

缓存模板文件:

angular.module("mlm/erp/modal/choose-department.html", []).run(["$templateCache", function($templateCache) {

$templateCache.put("mlm/erp/modal/choose-department.html",

"

"+

"

选择部门

"+

"

"+

"

" +

"

"options=\"treeOptions\" on-selection=\"selectNode(node,selected)\""+

"selected-node=\"selectedNode\">"+

"{{node.text}}({{node.id}})

"+

"

"+

"

"+

"确认"+

"取消"+

"

");

}]);

chooseDeptController:

angular("app").controller("chooseDeptController",['$scope','$uibModal','$uibModalInstance','service.login-set',function($scope,$uibModal,$uibModalInstance,service){

$scope.loadNodes = function() {

service.getAll().success(function(data,status){

service.popSuccess("加载部门树成功");

$scope.nodes = data;

$scope.selectedNode = $scope.nodes[0];

$scope.currentNode = $scope.selectedNode;

}).error(function(data,status){

service.popError("加载部门树失败");

});

}

$scope.loadNodes();

$scope.selectNode = function(node,selected) {

if(selected){

$scope.currentNode = node;

}else{

$scope.currentNode = null;

}

};

$scope.ok = function () {

$uibModalInstance.close($scope.currentNode);

};

$scope.cancel = function () {

$uibModalInstance.dismiss('cancel');

};

}]);

需要和模态窗口进行数据交互是,需要为他指定独立的controller(另外的方法是直接在打开窗口的controller属性中指定controller:function (){})。 模态窗口中使用的数据是指定的controller(这里是cooseDeptController)scope中的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值