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的一个简单的脚本验证插件
Apr 05 Javascript
JavaScript 原型学习总结
Oct 29 Javascript
js 固定悬浮效果实现思路代码
Aug 02 Javascript
javascript中的变量作用域以及变量提升详细介绍
Oct 24 Javascript
javascript设置页面背景色及背景图片的方法
Dec 29 Javascript
Bootstrap 组件之按钮(二)
May 11 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
May 24 Javascript
javascript 实现动态侧边栏实例详解
Nov 11 Javascript
Bootstrap禁用响应式布局的实现方法
Mar 09 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
Sep 21 Javascript
详解javascript常用工具类的封装
Jan 30 Javascript
微信小程序实现九宫格抽奖
Apr 15 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获取服务器时间的实现代码
2013/06/07 PHP
win7下memCache的安装过程(具体操作步骤)
2013/06/28 PHP
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
PHP简单日历实现方法
2016/07/20 PHP
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
2014/09/15 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
2016/10/14 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
使用ECharts实现状态区间图
2018/10/25 Javascript
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
layui扩展上传组件模拟进度条的方法
2019/09/23 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
Python正则表达式的使用范例详解
2014/08/08 Python
跟老齐学Python之复习if语句
2014/10/02 Python
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
Python装饰器使用实例:验证参数合法性
2015/06/24 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
Python3标准库总结
2019/02/19 Python
Pytorch evaluation每次运行结果不同的解决
2020/01/02 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
浅谈Python中os模块及shutil模块的常规操作
2020/04/03 Python
html5启动原生APP总结
2020/07/03 HTML / CSS
请写出 float x 与"零值"比较的 if 语句
2016/01/04 面试题
简历中自我评价范文3则
2013/12/14 职场文书
运动会稿件100字
2014/09/24 职场文书
2014年小学英语教师工作总
2014/12/03 职场文书
工商局个人工作总结
2015/03/03 职场文书
教师党员自我评价2015
2015/03/04 职场文书
2015年护士长个人工作总结
2015/04/24 职场文书
2016孝老爱亲模范事迹材料
2016/02/26 职场文书