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的jqDnR拖拽溢出的修改
Feb 12 Javascript
使用js dom和jquery分别实现简单增删改
Sep 11 Javascript
node.js调用C++开发的模块实例
Jul 03 Javascript
JavaScript实现窗口抖动效果
Oct 19 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
Dec 26 Javascript
JS中的phototype详解
Feb 04 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
Apr 23 Javascript
animate.css在vue项目中的使用教程
Aug 05 Javascript
微信小程序结合mock.js实现后台模拟及调试
Mar 28 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
Oct 23 Javascript
vue学习之Vue-Router用法实例分析
Jan 06 Javascript
微信小程序自定义胶囊样式
Dec 27 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
3款值得推荐的微信开发开源框架
2014/10/28 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
PHP实现二维数组去重功能示例
2017/01/12 PHP
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
Vue项目分环境打包的实现步骤
2018/04/02 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
2019/03/21 Javascript
详解Vue2.5+迁移至Typescript指南
2019/08/01 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
Python爬取京东的商品分类与链接
2016/08/26 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
python2和python3的输入和输出区别介绍
2018/11/20 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
python实现的发邮件功能示例
2019/09/11 Python
python对XML文件的操作实现代码
2020/03/27 Python
详解Python中如何将数据存储为json格式的文件
2020/11/18 Python
浅析pandas随机排列与随机抽样
2021/01/22 Python
德国圣伯纳德草药屋:Kräuterhaus Sanct Bernhard(有中文站)
2018/08/05 全球购物
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
个人求职简历中英文自我评价
2013/12/16 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
学生周末回家住宿长期请假条
2014/02/15 职场文书
奥巴马胜选演讲稿
2014/05/15 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
2014年初级职称工作总结
2014/12/08 职场文书
冰雪公主观后感
2015/06/16 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
JavaScript继承的三种方法实例
2021/05/12 Javascript
Python如何识别银行卡卡号?
2021/06/10 Python