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
相关文章:
已有域名和空间如何搭建网站?
Android自定义控件实现温度旋转按钮效果
如何在服务器上三步完成建站并提升流量?
制作农业网站的软件,比较好的农业网站推荐一下?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
如何在IIS中新建站点并配置端口与物理路径?
网站微信制作软件,如何制作微信链接?
再谈Python中的字符串与字符编码(推荐)
如何选择服务器才能高效搭建专属网站?
如何在IIS中配置站点IP、端口及主机头?
活动邀请函制作网站有哪些,活动邀请函文案?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
大同网页,大同瑞慈医院官网?
想学网站制作怎么学,建立一个网站要花费多少?
七夕网站制作视频,七夕大促活动怎么报名?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
C++时间戳转换成日期时间的步骤和示例代码
如何在云主机上快速搭建网站?
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
测试制作网站有哪些,测试性取向的权威测试或者网站?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
简单实现Android验证码
制作旅游网站html,怎样注册旅游网站?
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
如何在局域网内绑定自建网站域名?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
安云自助建站系统如何快速提升SEO排名?
广平建站公司哪家专业可靠?如何选择?
高防服务器租用如何选择配置与防御等级?
,想在网上投简历,哪几个网站比较好?
如何获取免费开源的自助建站系统源码?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
如何选择CMS系统实现快速建站与SEO优化?
如何配置WinSCP新建站点的密钥验证步骤?
如何在Ubuntu系统下快速搭建WordPress个人网站?
建站主机数据库如何配置才能提升网站性能?
如何高效搭建专业期货交易平台网站?
建站之星安装需要哪些步骤及注意事项?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
上海网站制作开发公司,上海买房比较好的网站有哪些?
如何快速选择适合个人网站的云服务器配置?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
实例解析Array和String方法
魔毅自助建站系统:模板定制与SEO优化一键生成指南
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
定制建站方案优化指南:企业官网开发与建站费用解析
*请认真填写需求信息,我们会在24小时内与您取得联系。