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 代码集(学习js的朋友可以看下)
Jul 22 Javascript
3款实用的在线JS代码工具(国外)
Mar 15 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
Jun 16 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
Jun 12 Javascript
js获取元素的外链样式的简单实现方法
Jun 06 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
Jan 19 Javascript
node安装--linux下的快速安装教程
Mar 21 Javascript
利用JQUERY实现多个AJAX请求等待的实例
Dec 14 jQuery
vue中手机号,邮箱正则验证以及60s发送验证码的实例
Mar 16 Javascript
JavaScript中 ES6变量的结构赋值
Jul 10 Javascript
Vue中qs插件的使用详解
Feb 07 Javascript
Javascript执行流程细节原理解析
May 14 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
用Zend Encode编写开发PHP程序
2006/10/09 PHP
php面向对象全攻略 (五) 封装性
2009/09/30 PHP
在smarty中调用php内置函数的方法
2013/02/07 PHP
php英文单词统计器
2016/06/23 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
TP3.2.3框架文件上传操作实例详解
2020/01/23 PHP
很全的显示阴历(农历)日期的js代码
2009/01/01 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
js onmousewheel事件多次触发问题解决方法
2014/10/17 Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
2015/12/11 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
2016/12/26 Javascript
BootStrap中的Fontawesome 图标
2017/05/25 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
layui 弹出删除确认界面的实例
2019/09/06 Javascript
vue.js this.$router.push获取不到params参数问题
2020/03/03 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
2020/04/14 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
python文件编写好后如何实践
2020/07/07 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
python中numpy.empty()函数实例讲解
2021/02/05 Python
高中生学习总结的自我评价范文
2013/10/13 职场文书
体育课课后反思
2014/04/24 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
书法兴趣小组活动总结
2014/07/07 职场文书
2015年乡镇发展党员工作总结
2015/03/31 职场文书
行政复议决定书
2015/06/24 职场文书
歌咏比赛主持词
2015/06/29 职场文书
运动会三级跳加油稿
2015/07/21 职场文书
百年校庆感言
2015/08/01 职场文书
2016年员工年度考核评语
2015/12/02 职场文书
2016年三八节红领巾广播稿
2015/12/17 职场文书
Python实现打乒乓小游戏
2021/09/25 Python
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python