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 相关文章推荐
javascript应用:Iframe自适应其加载的内容高度
Apr 10 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
Feb 23 Javascript
Jquery全选与反选点击执行一次的解决方案
Aug 14 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
Oct 20 Javascript
Angular路由简单学习
Dec 26 Javascript
angular中使用Socket.io实例代码
Jun 03 Javascript
React数据传递之组件内部通信的方法
Dec 31 Javascript
angular4强制刷新视图的方法
Oct 09 Javascript
PostgreSQL Node.js实现函数计算方法示例
Feb 12 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
Nov 10 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
Nov 19 Javascript
Vue 组件注册全解析
Dec 17 Vue.js
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利用cookies实现购物车的方法
2014/12/10 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
js charAt的使用示例
2014/02/18 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
2015/03/18 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
jQuery中 $ 符号的冲突问题及解决方案
2016/11/04 Javascript
JavaScript中Math对象的方法介绍
2017/01/05 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
vue实现拖拽效果
2019/12/23 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
2020/12/14 Vue.js
粗略分析Python中的内存泄漏
2015/04/23 Python
python集合用法实例分析
2015/05/30 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
2018/02/18 Python
python re模块的高级用法详解
2018/06/06 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
PyTorch中permute的用法详解
2019/12/30 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
英语专业推荐信
2013/11/16 职场文书
自我鉴定怎么写
2013/12/05 职场文书
自荐信写法介绍
2014/01/25 职场文书
班子个人四风问题整改措施
2014/10/04 职场文书
升职自我推荐信范文
2015/03/25 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
2019年中学生的思想品德评语集锦
2019/12/19 职场文书