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 checkbox,radio是否选中的判断代码
Mar 20 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
Mar 04 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
Apr 16 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 jQuery
jQuery EasyUI tree增加搜索功能的实现方法
Apr 27 jQuery
详解Angular4中路由Router类的跳转navigate
Jun 09 Javascript
使用JavaScript实现alert的实例代码
Jul 06 Javascript
windows下更新npm和node的方法
Nov 30 Javascript
ndm:NPM的桌面GUI应用程序
Oct 15 Javascript
JS+HTML5 canvas绘制验证码示例
Dec 05 Javascript
浅谈一个webpack构建速度优化误区
Jun 24 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
Nov 06 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
php 从数据库提取二进制图片的处理代码
2009/09/09 PHP
PHP积分兑换接口实例
2015/02/09 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
2015/12/31 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
jquery ajax 局部刷新小案例
2014/02/08 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
jQuery Select下拉框操作小结(推荐)
2016/07/22 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
2017/02/08 Javascript
浅谈NodeJs之数据库异常处理
2017/10/25 NodeJs
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
layui--select使用以及下拉框实现键盘选择的例子
2019/09/24 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
详解Python最长公共子串和最长公共子序列的实现
2018/07/07 Python
python的依赖管理的实现
2019/05/14 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
python属于解释语言吗
2020/06/11 Python
高级护理专业毕业生推荐信
2013/12/25 职场文书
三年级数学教学反思
2014/01/31 职场文书
党员自我批评与反省材料
2014/02/10 职场文书
党员批评与自我批评思想汇报(集锦)
2014/09/14 职场文书
服务员态度差检讨书
2014/10/28 职场文书
小学生节水倡议书
2015/04/29 职场文书
员工表扬信怎么写
2015/05/05 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS