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判断输入是否为正整数、浮点数等数字的函数代码
Nov 17 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
Feb 07 Javascript
给应用部分的js代码设定一个统一的入口
Jun 15 Javascript
简单方法判断JavaScript对象为null或者属性为空
Sep 26 Javascript
node.js中的fs.writeSync方法使用说明
Dec 15 Javascript
基于jQuery实现搜索关键字自动匹配功能
Mar 26 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
May 22 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
Jun 15 Javascript
Angular 如何使用第三方库的方法
Apr 18 Javascript
vue-router+nginx 非根路径配置方法
Jun 30 Javascript
AngularJs分页插件使用详解
Jun 30 Javascript
微信小程序实现无限滚动列表
May 29 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
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
世界收音机发展史
2021/03/01 无线电
用PHP+MySql编写聊天室
2006/10/09 PHP
PHP编辑器PhpStrom运行缓慢问题
2017/02/21 PHP
Using the TextRange Object
2006/10/14 Javascript
JS预览图像将本地图片显示到浏览器上
2013/08/25 Javascript
php读取sqlite数据库入门实例代码
2014/06/25 Javascript
学习javascript面向对象 理解javascript原型和原型链
2016/01/04 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
2019/09/05 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
js实现浏览器打印功能的示例代码
2020/07/15 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
2020/08/20 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
Python 命令行参数sys.argv
2008/09/06 Python
Python的Flask框架与数据库连接的教程
2015/04/20 Python
Python实现二叉搜索树
2016/02/03 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
通过字符串导入 Python 模块的方法详解
2019/10/27 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
python梯度下降算法的实现
2020/02/24 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
New Balance德国官方网站:购买鞋子和服装
2019/08/31 全球购物
Lookfantastic澳大利亚官网:英国知名美妆购物网站
2021/01/07 全球购物
为什么Runtime.exec(“ls”)没有任何输出?
2014/10/03 面试题
平安建设汇报材料
2014/12/29 职场文书
演讲比赛主持词
2015/06/29 职场文书
公司宣传语大全
2015/07/13 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
2016七夕情人节寄语
2015/12/04 职场文书
高中政治教学反思
2016/02/23 职场文书