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拖拽插件gridster使用指南
Apr 21 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
Jan 14 Javascript
总结Javascript中的隐式类型转换
Aug 24 Javascript
在 Angular 中实现搜索关键字高亮示例
Mar 21 Javascript
Bootstrap Table使用整理(四)之工具栏
Jun 09 Javascript
AngularJs实现聊天列表实时刷新功能
Jun 15 Javascript
解决vue2中使用axios http请求出现的问题
Mar 05 Javascript
在element-ui的el-tree组件中用render函数生成el-button的实例代码
Nov 05 Javascript
微信小程序按钮点击动画效果的实现
Sep 04 Javascript
浅析JS中NEW的实现原理及重写
Feb 20 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
Apr 03 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
Aug 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
wiki-shan写的php在线加密的解密程序
2008/09/07 PHP
Yii中CGridView关联表搜索排序方法实例详解
2014/12/03 PHP
PHP 使用memcached简单示例分享
2015/03/05 PHP
Laravel 5框架学习之Blade 简介
2015/04/08 PHP
必须收藏的php实用代码片段
2016/02/02 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
jQuery 选择器、DOM操作、事件、动画
2010/11/25 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
深入理解JavaScript系列(38):设计模式之职责链模式详解
2015/03/04 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
js编写简易的计算器
2020/07/29 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
vue表单验证之禁止input输入框输入空格
2020/12/03 Vue.js
python解决网站的反爬虫策略总结
2016/10/26 Python
python3实现UDP协议的服务器和客户端
2017/06/14 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
CentOS7下python3.7.0安装教程
2018/07/30 Python
Python利用字典破解WIFI密码的方法
2019/02/27 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
Python数据类型之Tuple元组实例详解
2019/05/08 Python
python列表切片和嵌套列表取值操作详解
2020/02/27 Python
大学团支书的自我评价分享
2013/12/14 职场文书
行政专员岗位职责
2014/01/02 职场文书
文字自荐书范文
2014/02/10 职场文书
运动会口号16字
2014/06/07 职场文书
医德医魂心得体会
2014/09/11 职场文书
鲁迅故居导游词
2015/02/05 职场文书
教师求职信怎么写
2015/03/20 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
2016师德师风学习心得体会
2016/01/12 职场文书
2016优秀护士求职自荐信
2016/01/28 职场文书
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android