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
相关文章:
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
如何通过cPanel快速搭建网站?
建站主机数据库如何配置才能提升网站性能?
北京专业网站制作设计师招聘,北京白云观官方网站?
建站之星多图banner生成与模板自定义指南
大连网站制作公司哪家好一点,大连买房网站哪个好?
如何规划企业建站流程的关键步骤?
如何在阿里云部署织梦网站?
广州美橙建站如何快速搭建多端合一网站?
小型网站制作HTML,*游戏网站怎么搭建?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
制作网站的基本流程,设计网站的软件是什么?
制作网站的公司有哪些,做一个公司网站要多少钱?
如何有效防御Web建站篡改攻击?
寿县云建站:智能SEO优化与多行业模板快速上线指南
如何选择网络建站服务器?高效建站必看指南
专业公司网站制作公司,用什么语言做企业网站比较好?
建站之星后台密码遗忘?如何快速找回?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
如何通过虚拟主机空间快速建站?
实例解析angularjs的filter过滤器
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
c++怎么用jemalloc c++替换默认内存分配器【性能】
如何在自有机房高效搭建专业网站?
如何零基础开发自助建站系统?完整教程解析
智能起名网站制作软件有哪些,制作logo的软件?
建站主机是否等同于虚拟主机?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
网站企业制作流程,用什么语言做企业网站比较好?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
安云自助建站系统如何快速提升SEO排名?
微信小程序 五星评分(包括半颗星评分)实例代码
如何在Tomcat中配置并部署网站项目?
制作网站公司那家好,网络公司是做什么的?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
如何快速打造个性化非模板自助建站?
如何用已有域名快速搭建网站?
行程制作网站有哪些,第三方机票电子行程单怎么开?
C++如何编写函数模板?(泛型编程入门)
广东企业建站网站优化与SEO营销核心策略指南
建站之星ASP如何实现CMS高效搭建与安全管理?
建站之星如何防范黑客攻击与数据泄露?
家庭建站与云服务器建站,如何选择更优?
如何做网站制作流程,*游戏网站怎么搭建?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
建站org新手必看:2024最新搭建流程与模板选择技巧
*请认真填写需求信息,我们会在24小时内与您取得联系。