`

AngularJS实现三级级联下拉选择框

阅读更多

index.html

<!doctype html>
<html ng-app="ngShowcaseApp">
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- 引入 Bootstrap -->
    <link href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet">
    <script src="jquery-1.9.1.js"></script>
    <script src="angular1.2.15.js"></script>
    <script src="app.js"></script>
    <script src="controllers.js"></script>
    <script src="data.js"></script>
    <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>
  </head>
  <body ng-controller="ngShowcaseController">
    <div class="row">
	  <div class="col-md-4">
	    <select class="form-control" ng-model="vm.country" ng-options="country.label for country in vm.countries">
	      <option value="">-- 请选择国家 --</option>
	    </select>
	  </div>
	  <div class="col-md-4" ng-if="vm.country.provinces">
	    <select class="form-control" ng-model="vm.province"
	            ng-options="province.label for province in vm.country.provinces">
	      <option value="">-- 请选择省份/州 --</option>
	    </select>
	  </div>
	  <div class="col-md-4" ng-if="vm.province.cities">
	    <select class="form-control" ng-model="vm.city" ng-options="city.label for city in vm.province.cities">
	      <option value="">-- 请选择城市/县区 --</option>
	    </select>
	  </div>
	</div>
	<div>您选择的是:{{vm.country.label}} - {{vm.province.label}} - {{vm.city.label}}</div>
	<div class="alert alert-info">
	  这里使用ng-if指令来达到下一级有数据才显示下一级的效果
	</div>
  </body>
</html>

app.js

'use strict';

/* App Module */
var md = angular.module('ngShowcaseApp', ['ctrl.select.cascade']);

controllers.js

'use strict';

/* Controllers */
var controllerModule = angular.module("ctrl.select.cascade", []);

var ctrl = [ '$scope', 'CityData', function( $scope, CityData ) {
	var vm = $scope.vm = {};
	  vm.countries = CityData;
	  // 更换国家的时候清空省
	  $scope.$watch('vm.country', function(country) {
	    vm.province = null;
	  });
	  // 更换省的时候清空城市
	  $scope.$watch('vm.province', function(province) {
	    vm.city = null;
	  });
}];

controllerModule.controller( "ngShowcaseController", ctrl );

data.js

'use strict';

angular.module('ngShowcaseApp').constant('CityData', [
  {
    label: '中国',
    flag: 'cn.png',
    provinces: [
      {
        label: '北京',
        cities: [
          {
            label: '朝阳区'
          },
          {
            label: '宣武区'
          },
          {
            label: '海淀区'
          }
        ]
      },
      {
        label: '河北',
        cities: [
          {
            label: '石家庄'
          },
          {
            label: '承德'
          },
          {
            label: '唐山'
          }
        ]
      }
    ]
  },
  {
    label: '美国',
    flag: 'us.png',
    provinces: [
      {
        label: '纽约',
        cities: [
          {
            label: '曼哈顿区'
          },
          {
            label: '皇后区'
          }
        ]
      },
      {
        label: '德克萨斯州',
        cities: [
          {
            label: '休斯顿'
          },
          {
            label: '达拉斯'
          }
        ]
      },
      {
        label: '加利福尼亚州'
      }
    ]
  }
]);

运行结果:

 

参考资源:http://www.ngnice.com/showcase/#/select/cascade?utm_source=TZ

  • 大小: 8.9 KB
分享到:
评论

相关推荐

    angularjs 地区三级级联

    在本文中,我们将深入探讨如何使用AngularJS实现地区三级级联功能,这通常涉及到省、市、区的联动选择。AngularJS是一个强大的JavaScript框架,它提供了丰富的功能来构建动态单页应用(SPA)。在这个场景中,我们使用...

    jQuery+ajax实现三级级联

    如果是在三级级联中,这一步会在二级选择改变后进行,以反映出正确的三级选项。 5. **错误处理**:在ajax请求中设置错误处理回调函数,以处理可能出现的网络问题或服务器错误,如显示错误提示或者恢复之前的选择。 ...

    JavaScript动态级联下拉列表框

    JavaScript动态级联下拉列表框是一种常见的前端交互设计,它允许用户在选择一个选项后,根据选择的结果动态更新下一个下拉列表框的内容。这种技术在数据筛选、表单填写等场景中广泛应用,能够提高用户体验,减少不必...

    java web下开发二级级联下拉菜单(数据库实现的)

    在Java Web开发中,二级级联下拉菜单是一种常见的用户界面元素,用于提供层次结构的选择。这个场景中,我们利用数据库存储数据,并通过后端处理逻辑动态生成这些下拉菜单。下面将详细介绍如何使用MySQL数据库来实现...

    JSP+JavaScript二级级联下拉菜单

    在使用JSP JavaScript过程中有很多的技巧与实现,那么如何构建二级级联下拉菜单呢,本文将会向你做一个源码上的介绍。

    jsp出生日期三级级联下拉列表

    在本文中,我们将深入探讨如何在JSP(JavaServer Pages)中实现一个基于JavaScript的出生日期三级级联下拉列表。这种功能常用于用户注册、个人信息填写等场景,让用户能够方便地选择他们的出生年、月和日。 首先,...

    js树状地区三级级联带复选框

    它支持多选、级联选择以及自定义数据源等功能,非常适合实现“js树状地区三级级联带复选框”的需求。在JSTree中,你可以配置各种插件和设置,如checkbox插件来启用复选框,配置json_data或ajax数据源来动态加载地区...

    网页表单级联下拉列表自动填写方法

    网页表单级联下拉列表自动填写方法是指在网页表单中,多个下拉列表框之间存在关联关系,选择前一个下拉列表框的选项后,后一个下拉列表框才会出现相关的选项,这样可以实现自动填写省、市、县三级下拉列表框的功能。...

    动态实现下拉列表框三级级联查询

    在IT领域,动态实现下拉列表框的三级级联查询是一项常见的前端交互功能,它能够为用户提供更加便捷的导航和筛选体验。在这个场景中,我们使用JSP(JavaServer Pages)脚本语言来实现这一功能。JSP是Java平台上的...

    jQuery实现的多级级联下拉列表

    多级级联下拉列表的工作原理是:当用户在一个下拉列表中做出选择时,该选择会触发一个事件,这个事件会发送一个Ajax请求到服务器,服务器根据请求参数返回相应的下一级选项,然后jQuery将这些新数据填充到下一个下拉...

    可编辑的级联下拉列表框

    总结来说,"可编辑的级联下拉列表框"是一个结合了输入和选择的前端交互控件,利用JQuery可以轻松实现其功能。通过合理的数据结构和事件处理,我们可以创建出高效、美观的用户界面,提升应用的易用性。

    jsp+json+mySql 实现二级级联下拉菜单

    在本文中,我们将深入探讨如何使用JSP、JSON和MySQL来实现一个二级级联下拉菜单。这个功能常用于网站的表单设计中,让用户能够从相关联的分类中选择选项,例如省份与城市的选择。 首先,让我们了解这三个技术的核心...

    javascript实现无限级级联下拉列表

    无限级联下拉列表允许用户逐级选择,每一级的选择会影响到下一级的显示内容。下面我们将深入探讨如何使用JavaScript来实现这一功能。 首先,我们需要理解无限级联的基本概念。无限级联意味着每个层级都可以有任意...

    uniapp选择器,包含一级,二级级联,三级级联uniapp-picker-master.zip

    在"uniapp选择器,包含一级,二级级联,三级级联uniapp-picker-master.zip"这个压缩包中,包含了实现这种级联选择的示例代码。 uni-app是一个多端统一的开发框架,它可以将同一份代码编译到iOS、Android、H5、小程序等...

    jquery简单实现级联下拉列表

    本文将详细解析如何使用jQuery来实现级联下拉列表,这是一种常见的Web前端功能,常用于数据关联选择场景,如地区选择(省市区)、分类选择等。 ### 核心概念:级联下拉列表 级联下拉列表是指当用户在一个下拉列表...

    javascript四级级联下拉菜单

    JavaScript四级级联下拉菜单是一种常见的网页交互设计,它允许用户在多个下拉菜单中进行选择,逐级筛选出最终的选项。这种设计通常用于表示层次结构的数据,如国家、省份、城市和区域等地理信息,也可以应用于其他...

    JavaScript解析XML实现两级级联下拉列表

    在本文中,我们将深入探讨如何使用JavaScript来解析XML数据,并基于这些数据实现一个两级级联下拉列表。这种功能在Web开发中非常常见,尤其是在构建动态表单时,用户需要根据上一级的选择来筛选下一级的选项。我们将...

Global site tag (gtag.js) - Google Analytics