ホームページ  >  記事  >  ウェブフロントエンド  >  AngularJSによる地方自治体の二次連携機能の実装例

AngularJSによる地方自治体の二次連携機能の実装例

小云云
小云云オリジナル
2018-01-02 15:58:002236ブラウズ

この記事では、AngularJS で実装された地方自治体の二次連携機能を中心に紹介しており、イベント監視、応答、ページ要素の動的操作などに加えて、必要な友達が参照できるオプションの追加や削除の機能も備えています。皆さんのお役に立てれば幸いです。

<!DOCTYPE html> 
<html> 
<head> 
 <meta charset="UTF-8"> 
 <title>www.jb51.net 省市二级联动</title> 
</head> 
<style> 
 *{ 
  margin:0; 
  padding:0; 
 } 
 .ul{ 
  list-style:none; 
  display:inline-block; 
 } 
 .selectOption ul li{ 
  display:inline-block; 
  width:50px; 
  padding:5px; 
 } 
 ul li:hover{ 
  background-color:#59C0F3; 
  color:#fff; 
  cursor:pointer; 
 } 
 .container{ 
  display:inline-block; 
 } 
 dl{ 
  display: inline-block; 
 } 
 dl dt{ 
  display: inline-block; 
 } 
 .container{ 
  position:relative; 
  text-align: left; 
  vertical-align:top; 
 } 
 .selectBoder{ 
  width:150px; 
  height:20px; 
  margin:0 auto; 
  margin-bottom:5px; 
  cursor:pointer; 
  border:1px solid #808080; 
  padding:2px 5px; 
  font-size:14px; 
 } 
 .selectBoder:hover{ 
  border-color:#59C0F3; 
 } 
 .selectOption:before{ 
  width: 0; 
  height: 0; 
  border-bottom: 50px solid #ffffff; 
  border-left: 50px solid transparent; 
  border-right: 50px solid transparent; 
 } 
 .selectOption{ 
  font-size:14px; 
  position:absolute; 
  background-color: #ffffff; 
  z-index:9999; 
  border:1px solid #eee; 
  width:360px; 
  padding:3px 5px; 
  box-shadow: 5px 5px 10px #888888; 
 } 
 .button{ 
  width:30px; 
  height:30px; 
  display: inline-block; 
  background-color:#59C0F3; 
  text-align:center; 
  line-height: 25px; 
  cursor:pointer; 
  font-size:24px; 
  color:#fff; 
  margin:0 5px; 
  border-radius:30px; 
 } 
 .button:hover{ 
  background-color:#12bb16; 
 } 
</style> 
<body ng-app="myApp" ng-controller="myControl"> 
<p ng-repeat = "option in options"> 
<p> 
 <dl> 
  <dd ng-click="choseP($index)" ng-value="false">{{option.province}}</dd> 
  <dt ng-if="option.ifShowProvince" ng-mouseleave="leaveProvince(option)"> 
  <ul> 
   <li ng-repeat = " x in province" ng-value="x.value" ng-click="choseProvince($event.target,option)" data-name="{{x.name}}">{{x.name}}</li> 
  </ul> 
  </dt> 
 </dl> 
</p> 
<p> 
 <dl> 
  <dd ng-click="choseC($index)" ng-value="false">{{option.city}}</dd> 
  <dt ng-if="option.ifShowCity" ng-mouseleave="leaveCity(option)"> 
  <ul> 
   <li ng-repeat = "y in option.cities" ng-value="y.value" ng-click="choseCity($event.target,option)" data-name="{{y.name}}">{{y.name}}</li> 
  </ul> 
  </dt> 
 </dl> 
</p> 
  <span ng-click="addChose($index)">+</span> 
 <span ng-click="deleteChose($index)">-</span> 
</p> 
</p> 
</body> 
<script type="text/javascript" src="../js/jquery-1.8.3.js"></script> 
<script type="text/javascript" src="../js/angular.min.js"></script> 
<script type="text/javascript"> 
 var app = angular.module(&#39;myApp&#39;,[]); 
 app.controller(&#39;myControl&#39;,function($scope){ 
  $scope.ifShowCity = false; 
  $scope.ifShowProvince = false; 
  $scope.options =[{index:"0",ifShowCity:false,ifShowProvince:false,province:"",city:"",cities:""}]; 
  $scope.leaveProvince = function(option){ 
   $.each($scope.options,function(index,item){ 
    if(option == $scope.options[index]){ 
     $scope.optionIndex = index; 
    } 
   }) 
   $scope.options[$scope.optionIndex].ifShowProvince = false; 
  } 
  $scope.leaveCity = function(option){ 
   $.each($scope.options,function(index,item){ 
    if(option == $scope.options[index]){ 
     $scope.optionIndex = index; 
    } 
   }) 
   $scope.options[$scope.optionIndex].ifShowCity = false; 
  } 
  $scope.choseProvince = function(target,option){ 
   $.each($scope.options,function(index,item){ 
    if(option == $scope.options[index]){ 
     $scope.optionIndex = index; 
    } 
   }) 
   $scope.options[$scope.optionIndex].ifShowProvince = false; 
   $scope.options[$scope.optionIndex].province = target.getAttribute("data-name"); 
   $.each($scope.province,function(index,item){ 
    if(item.value == target.getAttribute("value")){ 
     $scope.options[$scope.optionIndex].cities = item.children; 
     } 
    } 
   ) 
  } 
  $scope.choseCity = function(target,option){ 
   $.each($scope.options,function(index,item){ 
    if(option == $scope.options[index]){ 
     $scope.optionIndex = index; 
    } 
   }) 
   $scope.options[$scope.optionIndex].ifShowCity = false; 
   $scope.options[$scope.optionIndex].city = target.getAttribute("data-name"); 
  } 
  function getPrarms(){ 
   return $scope.options; 
  } 
  $scope.sub = function(){ 
   getPrarms(); 
  } 
  $scope.province = 
    [{ 
   name: "湖北省", 
   value: "01", 
   children: [{ 
    name: "武汉", 
    value: "0101" 
   }, { 
    name: "黄冈", 
    value: "0102" 
   }, { 
    name: "荆州", 
    value: "0103" 
   }, { 
    name: "十堰", 
    value: "0104" 
   }, { 
    name: "黄石", 
    value: "0105" 
   }, { 
    name: "鄂州", 
    value: "0106" 
   }, { 
    name: "咸宁市", 
    value: "0107" 
   }, { 
    name: "襄阳市", 
    value: "0108" 
   } 
   ] 
  },{ 
   name: "广东省", 
   value: "02", 
   children: [{ 
    name: "广东", 
    value: "0201" 
   }, { 
    name: "深圳", 
    value: "0202" 
   }, { 
    name: "佛山", 
    value: "0203" 
   }, { 
    name: "惠州", 
    value: "0204" 
   }, { 
    name: "东莞", 
    value: "0205" 
   }] 
   },{ 
    name: "河北省", 
    value: "03", 
    children: [{ 
     name: "北京", 
     value: "0301" 
    }, { 
     name: "邯郸", 
     value: "0302" 
    }, { 
     name: "邢台", 
     value: "0303" 
    }, { 
     name: "保定", 
     value: "0304" 
    }, { 
     name: "秦皇岛", 
     value: "0305" 
    } 
    ]} 
     ] 
  $scope.choseP = function($index){ 
   $scope.options[$index].ifShowProvince = !$scope.options[$index].ifShowProvince; 
   $scope.options[$index].ifShowCity = false; 
  } 
  $scope.choseC = function($index){ 
   $scope.options[$index].ifShowCity = !$scope.options[$index].ifShowCity; 
   $scope.options[$index].ifShowProvince = false; 
  } 
  $scope.addChose = function($index){ 
   if($scope.options.length < 10){ 
    $scope.options.splice($scope.options.length,0,{ //从最后面添加内容 
     index:$scope.options.length,ifShowCity:false,ifShowProvince:false 
    }); 
    $scope.canDelete = true; 
   }else{ 
    $scope.canAdd = false; 
   } 
  } 
  $scope.deleteChose = function($index){ 
   if($scope.options.length >1){ 
    $scope.options.splice($index,1); //从当前行删除。 
   } 
   if($index == 1){ 
    $scope.canDelete = false; 
   } 
  } 
 }); 
</script> 
</html>

関連する推奨事項:

jqueryのajaxの二次連携効果を実装する方法

登録ページのjq二次連携を実現するには

選択選択の二次連携効果を実装する方法

以上がAngularJSによる地方自治体の二次連携機能の実装例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。