Angularjs自定义指令实现三级联动效果,先上图
代码
<html lang="zh-CN" ng-app="myApp">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="jquery.min.js"></script>
<script src="angular.js"></script>
<script src="bootstrap.min.js"></script>
<link rel="stylesheet" href="bootstrap.min.css" rel="external nofollow" >
<style type="text/css">
select {
width : 116px;
}
.selectLocation select {
display: block;
float: left;
margin-bottom: 2px;
}
</style>
<script type="text/javascript">
var myApp = angular.module('myApp', []);
myApp.controller('Ctrl', ['$scope', 'utilsService', function($scope, utilsService){
$scope.location = '';
$scope.$watch('location', function(newValue) {
console.log(newValue)
console.log(utilsService.isEmptyObj(newValue))
})
// if (isEmptyObj($scope.location)) {
// //error
// }
}]);
myApp.factory("utilsService", function() {
return {
isEmptyObj : function(obj) {
var flag = true;
for(var i in obj) {
if (obj[i] != '') {
flag = false;
break;
}
}
return flag;
}
}
})
myApp.directive("custLocation", ['$http', function($http) {
return {
restrict: 'A',
scope: {
ngModel : '='
},
templateUrl: 'tmpl.html',
link: function(scope, elem, attrs) {
scope.country = '';
scope.province = '';
scope.city = '';
scope.detailAddress = '';
$http.get("location.json").success(function(data) {
scope.countryList = data.country;
});
scope.$watch('detailAddress', function(newValue) {
// console.log(scope.country.name + scope.province.name + scope.city + newValue)
scope.ngModel = {
"country" : scope.country == null || scope.country == '' ? '' : scope.country.name,
"province" : scope.province == null || scope.province == '' ? '' : scope.province.name,
"city" : scope.city || '',
"detailAddress" : newValue
};
});
scope.changeCountry = function() {
if (scope.country == null) {
scope.country = '';
scope.province = '';
scope.city = '';
scope.detailAddress = '';
scope.ngModel = '';
} else {
scope.ngModel = {
"country" : scope.country.name,
"province" : scope.province == null || scope.province == '' ? '' : scope.province.name,
"city" : scope.city || '',
"detailAddress" : scope.detailAddress
};
}
}
scope.changeProvince = function () {
scope.ngModel = {
"country" : scope.country.name,
"province" : scope.province == null || scope.province == '' ? '' : scope.province.name,
"city" : scope.city || '',
"detailAddress" : scope.detailAddress
};
}
scope.changeCity = function() {
scope.ngModel = {
"country" : scope.country.name,
"province" : scope.province == null || scope.province == '' ? '' : scope.province.name,
"city" : scope.city || '',
"detailAddress" : scope.detailAddress
};
}
}
};
}]);
</script>
</head>
<body ng-controller="Ctrl">
<div cust-location ng-model="location"></div>
</body>
</html>
tmpl.html
<div class="selectLocation"> <div> <select class="btn btn-info btn-sm" ng-change="changeCountry()" ng-model="country" ng-options="C.name for C in countryList"> <option value="">国家</option> </select> </div> <div> <select class="btn btn-info btn-sm" ng-change="changeProvince()" ng-model="province" ng-options="p.name for p in country.province"> <option value="">省份/直轄市</option> </select> </div> <div> <select class="btn btn-info btn-sm" ng-change="changeCity()" ng-model="city" ng-options="c for c in province.city"> <option value="">市</option> </select> </div> <div style="width:348px;"> <input type="text" class="form-control" ng-model="detailAddress" placeholder="详细地址" ng-disabled="country=='' || country==null" /> </div> </div>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Angularjs
# 三级联动
# AngularJS实现的select二级联动下拉菜单功能示例
# Angularjs实现下拉框联动的示例代码
# 基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
# 实例详解AngularJS实现无限级联动菜单
# 基于angular实现三级联动的生日插件
# AngularJS实现的省市二级联动功能示例【可对选项实现增删】
# 自定义
# 大家多多
# 上图
# js
# min
# jquery
# angular
# rel
# link
# bootstrap
# device
# width
# viewport
# initial
# src
# script
# scale
# stylesheet
# display
# selectLocation
相关文章:
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
建站主机CVM配置优化、SEO策略与性能提升指南
建站之星ASP如何实现CMS高效搭建与安全管理?
专业商城网站制作公司有哪些,pi商城官网是哪个?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
如何通过网站建站时间优化SEO与用户体验?
建站之星收费标准详解:套餐费用及年费价格表一览
Python文件管理规范_工程实践说明【指导】
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
jQuery 常见小例汇总
黑客入侵网站服务器的常见手法有哪些?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
如何选择高效可靠的多用户建站源码资源?
如何选择高效便捷的WAP商城建站系统?
如何选择适配移动端的WAP自助建站平台?
如何快速生成橙子建站落地页链接?
c# 在ASP.NET Core中管理和取消后台任务
如何基于PHP生成高效IDC网络公司建站源码?
临沂网站制作企业,临沂第三中学官方网站?
北京网站制作网页,网站升级改版需要多久?
黑客如何通过漏洞一步步攻陷网站服务器?
婚礼视频制作网站,学习*后期制作的网站有哪些?
高防服务器租用首荐平台,企业级优惠套餐快速部署
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
如何用低价快速搭建高质量网站?
如何快速选择适合个人网站的云服务器配置?
实例解析Array和String方法
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
建站之星安装失败:服务器环境不兼容?
建站主机空间推荐 高性价比配置与快速部署方案解析
微信小程序制作网站有哪些,微信小程序需要做网站吗?
建站为何优先选择香港服务器?
如何通过西部建站助手安装IIS服务器?
定制建站是什么?如何实现个性化需求?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
宝塔建站助手安装配置与建站模板使用全流程解析
免费ppt制作网站,有没有值得推荐的免费PPT网站?
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
上海网站制作开发公司,上海买房比较好的网站有哪些?
微信h5制作网站有哪些,免费微信H5页面制作工具?
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
建站主机系统SEO优化与智能配置核心关键词操作指南
如何通过万网虚拟主机快速搭建网站?
微信推文制作网站有哪些,怎么做微信推文,急?
孙琪峥织梦建站教程如何优化数据库安全?
*请认真填写需求信息,我们会在24小时内与您取得联系。