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 相关文章推荐
番茄的表单验证类代码修改版
Jul 18 Javascript
单击复制文字兼容各浏览器的完美解决方案
Jul 04 Javascript
跟我学习javascript的循环
Nov 18 Javascript
JavaScript函数柯里化详解
Apr 29 Javascript
iScroll.js 使用方法参考
May 16 Javascript
Javascript中的对象和原型(二)
Aug 12 Javascript
JavaScript触发onScroll事件的函数节流详解
Dec 14 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
Feb 27 Javascript
Bootstrap组合上、下拉框简单实现代码
Mar 06 Javascript
Node.js简单入门前传
Aug 21 Javascript
使用element-ui table expand展开行实现手风琴效果
Mar 15 Javascript
jQuery实现轮播图效果demo
Jan 11 jQuery
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 PDO实现的事务回滚示例
2017/03/23 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
php多进程中的阻塞与非阻塞操作实例分析
2020/03/04 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
基于jquery的关于动态创建DOM元素的问题
2010/12/24 Javascript
异步javascript的原理和实现技巧介绍
2012/11/08 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
javascript scrollTop正解使用方法
2013/11/14 Javascript
多种方法实现load加载完成后把图片一次性显示出来
2014/02/19 Javascript
javascript动态判断html元素并执行不同的操作
2014/06/16 Javascript
Javascript Memoizer浅析
2014/10/16 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
原生js实现无缝轮播图效果
2017/01/11 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
2017/03/28 jQuery
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
JS实现移动端在线签协议功能
2019/08/22 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
2019/12/01 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
pymongo中聚合查询的使用方法
2019/03/22 Python
django框架实现一次性上传多个文件功能示例【批量上传】
2019/06/19 Python
win10下python2和python3共存问题解决方法
2019/12/23 Python
python 常见的反爬虫策略
2020/09/27 Python
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
自荐信封面
2013/12/04 职场文书
硕士研究生个人求职信
2013/12/04 职场文书
体育教师自荐信范文
2013/12/16 职场文书
书香校园建设方案
2014/05/02 职场文书
出国留学担保书
2014/05/20 职场文书
假面舞会策划方案
2014/05/29 职场文书
检察院起诉书
2015/05/20 职场文书
2019年员工旷工保证书!
2019/06/28 职场文书
用Python生成会跳舞的美女
2022/01/18 Python