全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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.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小时内与您取得联系。