这篇文章主要介绍了Angularjs自定义指令实现三级联动,选择地理位置,以便以后工作需要可以参考。
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-1.8.3.js"></script> <script src="bootstrap.js"></script> <script src="angular1.2.9.js"></script> <link rel="stylesheet" href="bootstrap.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自定义指令实现三级联动,选择地理位置,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Android 自定义弹窗 城市三级联动 详情请关注 http://blog.csdn.net/gdecking/article/details/22654985
支持 自定义省市区地址。实现省市区三级联动地址选择,方便自己的地址的设置 ,文件中是已 限制湖北的 地址,按照 js中填写 自己测试看看
Android-自定义省市区三级联动,引用即可使用
微信小程序-省市县三级联动,带有自定义地区码(源代码+截图)微信小程序-省市县三级联动,带有自定义地区码(源代码+截图)微信小程序-省市县三级联动,带有自定义地区码(源代码+截图)微信小程序-省市县三级联动,带有...
angularjs 城市三级联动 包含各主要城市: name: '北京', cityList: [{ name: '市辖区', areaList: ['东城区', '西城区', '崇文区', '宣武区', '朝阳区', '丰台区', '石景山区', '海淀区', '门头沟区', '房山区', '...
根据别人的demo 在二级的基础上改成了三级联动 样式是自定义的
安卓自定义日期选择控件 三级联动,仿ios 自定义控制显示效果
android 实现三级联动 可直接运行
三级联动效果三级联动效果三级联动效果三级联动效果三级联动效果三级联动效果三级联动效果三级联动效果三级联动效果三级联动效果三级联动效果三级联动效果三级联动效果三级联动效果三级联动效果
uniapp使用uview组件实现省市区三级联动; 文件下载后,需要在项目中引入uview组件方可使用; 数据附带在文件中
实现移动端省市区三级联动选择器,使用js实现三级联动的效果
纯angularJS写的二级联动选择菜单,亲测可用 有问题可以联系我
android 城市选择三级联动
本代码实现了 省地县三级联动展现,从xml文件中读取省地县的数据。
Angularjs输入框弹出城市地区联动选择代码,一款适用于PC与手机端的省市区街道地址选择代码,街道名称需要手动输入。
包括两种联动方式, 一种是传统的jquery+ajax+select, 一种是jquery+ajax+select+div+css,自定义select样式实现数据联动。 都可直接使用。里面有使用事例
对于android初学者,最烦的就是学习自定义控件。原生的控件不是丑就是无法满足需求,不得以我们只好自己重写控件的方法,下面我就为大家...,此控件可以实现城市选择的多级联动,时间选择等多种功能,具体自己DIY叭!