AngularJS实现多级下拉框


Posted in Javascript onMarch 25, 2022

本文实例为大家分享了AngularJS实现多级下拉框的具体代码,供大家参考,具体内容如下

<div ng-app="MultiDropDownApp" ng-controller="MultiDropDownControl as vm">
    <label>选择地址:</label>
    <!--ng-options加载所有选择项,ng-model记录当前选择项-->
    <select ng-model="vm.province" ng-options="x.name for x in vm.provinceSort"
            ng-change="vm.selectProvince()" id="" value="" class="form-control width-25">
        <option value="">请选择</option>

    </select>
    <label>—</label>
    <select ng-model="vm.city" ng-options="x.name for x in vm.citySort"
            id="" value="" class="form-control width-25">
        <option value="">请选择</option>

    </select>
</div>
<script src="~/Scripts/angular.min.js"></script>
<script>
    var app = angular.module('MultiDropDownApp', []);
    //可以添加上自己注入的服务
    app.controller('MultiDropDownControl', ['$scope', '$http',
        function ($scope, $http) {
            var vm = this;
            vm.provinceSort = [];
            vm.citySort = [];

            //选择省级单位,初始化市级数据   二级联动
            vm.selectProvince = function () {
                var fatherID = vm.province.id;
                vm.citySort = [];
                $http({
                    method: 'POST',
                    url: '/AngularjsStudy/GetChildrenSort',
                    data: { fatherID: fatherID }
                }).then(function successCallback(data) {
                    vm.citySort = data.data;
                }, function errorCallback(response) {
                    // 请求失败执行代码
                });
            }

            //初始化页面
            function init() {
                //省
                $http({
                    method: 'POST',
                    url: '/AngularjsStudy/GetProvinceSort',
                    data: {}
                }).then(function successCallback(data) {
                    //加载下拉框数据
                    vm.provinceSort = data.data;
                    //设置默认选项
                    vm.province = vm.provinceSort[0];
                }, function errorCallback(response) {
                    // 请求失败执行代码
                });
            }

            //初始化
            init();
        }])
</script>

Controller

public ActionResult GetProvinceSort()
        {
            List<District> districts = new List<District>();
            districts.Add(new District() {id=1,fatherID=0,name="湖南省" });
            districts.Add(new District() { id =2, fatherID = 0, name = "湖北省" });
            districts.Add(new District() { id =3, fatherID = 0, name = "四川省" });
            return Json(districts);
        }

        public ActionResult GetChildrenSort(int fatherID)
        {
            List<District> districts = new List<District>();
            switch (fatherID)
            {
                case 1:
                    districts.Add(new District() { id = 4, fatherID = 1, name = "长沙市" });
                    districts.Add(new District() { id = 5, fatherID = 1, name = "岳阳市" });
                    districts.Add(new District() { id = 6, fatherID = 1, name = "株洲市" });
                    return Json(districts);
                case 2:
                    districts.Add(new District() { id = 7, fatherID = 2, name = "武汉市" });
                    districts.Add(new District() { id = 8, fatherID = 2, name = "宜昌市" });
                    return Json(districts);
                case 3:
                    districts.Add(new District() { id = 9, fatherID = 3, name = "成都市" });
                    districts.Add(new District() { id = 10, fatherID = 3, name = "遂宁市" });
                    districts.Add(new District() { id = 11, fatherID = 3, name = "巴中市" });
                    districts.Add(new District() { id = 12, fatherID = 3, name = "绵阳市" });
                    districts.Add(new District() { id = 13, fatherID = 3, name = "南充市" });
                    return Json(districts);
                default:
                    districts.Add(new District() { id = 14, fatherID = -1, name = "不知道你选了什么∑q|゚Д゚|p" });
                    return Json(districts);
            }
        }

Model

public class District
{
    public int id { get; set; }
    /// <summary>
    /// 根节点FatherID=0
    /// </summary>
    public int fatherID { get; set; }
    public string name { get; set; }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery Tools tab(幻灯片)
Jul 14 Javascript
Javascript调用函数方法的几种方式介绍
Mar 20 Javascript
jQuery监控文本框事件并作相应处理的方法
Apr 16 Javascript
js实现点击切换TAB标签实例
Aug 21 Javascript
jQuery短信验证倒计时功能实现方法详解
May 25 Javascript
JavaScript表单焦点自动切换代码
Jul 24 Javascript
浅谈js中调用函数时加不加括号的问题
Jul 28 Javascript
node实现爬虫的几种简易方式
Aug 22 Javascript
JavaScript实现抖音罗盘时钟
Oct 11 Javascript
Vue学习之axios的使用方法实例分析
Jan 06 Javascript
js实现动态时钟
Mar 12 Javascript
JavaScript进阶(一)变量声明提升实例分析
May 09 Javascript
JavaScript实现两个数组的交集
Mar 25 #Javascript
angular4实现带搜索的下拉框
使用Canvas绘制一个游戏人物属性图
【js设计模式】SOLID五大设计原则
什么是SOLID
Vue3中toRef与toRefs的区别
Mar 24 #Vue.js
Javascript的promise,async和await的区别详解
Mar 24 #Javascript
You might like
上海无线电三厂简史修改版
2021/03/01 无线电
PHP+MYSQL的文章管理系统(二)
2006/10/09 PHP
PHP游戏编程25个脚本代码
2011/02/08 PHP
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
wamp服务器访问php非常缓慢的解决过程
2015/07/01 PHP
ThinkPHP数据操作方法总结
2015/09/28 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
Angular2数据绑定详解
2017/04/18 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
浅谈vue中数据双向绑定的实现原理
2017/09/14 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
[20:30]职业巡回赛回顾
2018/08/09 DOTA
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
python3爬取数据至mysql的方法
2018/06/26 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
python中time库的实例使用方法
2019/10/31 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
2020/12/23 Python
HTML5 weui使用笔记
2019/11/21 HTML / CSS
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
波兰电子产品购物网站:Vobis
2019/05/26 全球购物
应届生会计电算化求职信
2013/10/03 职场文书
网页美工求职信
2014/02/15 职场文书
加入学生会演讲稿
2014/04/24 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书
python基础之while循环语句的使用
2021/04/20 Python
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python