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 相关文章推荐
js 覆盖和重载 函数
Sep 25 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
Jan 23 Javascript
特殊情况下如何获取span里面的值
May 20 Javascript
JScript中的条件注释详解
Apr 24 Javascript
关于JavaScript作用域你想知道的一切
Feb 04 Javascript
js仿3366小游戏选字游戏
Apr 14 Javascript
浅谈jQuery为哪般去掉了浏览器检测
Aug 29 Javascript
vue生成随机验证码的示例代码
Sep 29 Javascript
使用async await 封装 axios的方法
Jul 09 Javascript
vue双向绑定及观察者模式详解
Mar 19 Javascript
jQuery实现简单三级联动效果
Sep 05 jQuery
vue调用微信JSDK 扫一扫,相册等需要注意的事项
Jan 03 Vue.js
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
PHP新手上路(十四)
2006/10/09 PHP
PHP执行linux系统命令的常用函数使用说明
2010/04/27 PHP
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
2014/06/19 PHP
html静态页面调用php文件的方法
2014/11/13 PHP
php二维码生成
2015/10/19 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
为何说PHP引用是个坑,要慎用
2018/04/02 PHP
PHP封装的简单连接MongoDB类示例
2019/02/13 PHP
IE中直接运行显示当前网页中的图片 推荐
2006/08/31 Javascript
extJs 下拉框联动实现代码
2010/04/09 Javascript
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
在node中如何使用 ES6
2017/04/22 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
Python3实现抓取javascript动态生成的html网页功能示例
2017/08/22 Python
Python切片操作深入详解
2018/07/27 Python
python实现Excel文件转换为TXT文件
2019/04/28 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
2020/12/11 Python
使用javascript和HTML5 Canvas画的四渐变色播放按钮效果
2014/04/10 HTML / CSS
美国现代家具购物网站:LexMod
2019/01/09 全球购物
数字漫画:comiXology
2020/06/13 全球购物
超市5.1促销活动
2014/01/15 职场文书
学生检讨书怎么写
2014/10/09 职场文书
学校师德师风整改方案
2014/10/28 职场文书
2014年财务部工作总结
2014/11/11 职场文书
舞出我人生观后感
2015/06/16 职场文书
大学生社会服务心得体会
2016/01/22 职场文书