<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; }
}

AngularJS 多级下拉框的更多相关文章

  1. avalon.js 多级下拉框实现

    学习avalon.js的时候,有一个多级下拉框的例子,地址 戳这里 代码实现了联动, 但是逻辑上面理解有点难度,获取选择的值 和 页面初始化 功能存在问题. 在写地图编辑的时候,也用到了多级下拉框,特 ...

  2. angularJs实现下拉框多选

    话不多说,直接上干货. 肯定需要下拉选插件.必须引入的是   注意 先后顺序 select2.css select2-bootstrap.css select2.min.js angular.min. ...

  3. WebForm使用AngularJS实现下拉框多级联动

    数据准备 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                             CateId = ,        ...

  4. java 移动开发获取多级下拉框json数据的类和mobile-select-area插件

    我这里以行政区划做例子 //这个类是把数据库中的行政区划转化为json格式的data @SuppressWarnings("rawtypes")public class XzqhL ...

  5. angularjs 实现下拉框编辑数据回显

    https://www.cnblogs.com/janice-jia/p/9764938.html 正常的js回显选择,需要添加 select ="selected",angula ...

  6. 简单JS多级下拉框无刷新

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. angularJS select下拉框检测改变

    html:(已引入amazeUI) <div style="width:70px;display:inline-block;"> <form class=&quo ...

  8. 【经验】angularjs 实现带查找筛选功能的select下拉框

    一.背景 对于select的下拉列表,像国家选择这样的功能,全世界那么多国家,一直拉滚动条多辛苦,眼睛也要盯着找,累!so,为优化用户体验,带查找功能的下拉框是非常非常有必要的.都知道jquery里有 ...

  9. angularjs下拉框实现渲染html

    angualrjs处于安全的考虑,插值 指令会对相应字符串进行过滤,避免出现html攻击.但是在一些时候,我们需要渲染html,比如实现一个分级的下拉框,代码如下: <body ng-app=& ...

随机推荐

  1. SAP 中的popup dialog (弹出对话框) 常见实现方法

      方法1: FM:POPUP_TO_CONFIRM(标准对话弹出消息) 有三个button:YES-NO-CANL,可进行对应的逻辑推断 可设定标题,描写叙述问题,不方便对文本进行换行等排版,不能改 ...

  2. 离线下载chrome

    https://gallery.technet.microsoft.com/Google-Chrome-version-f0619a1f

  3. linux下如何查找nginx配置文件的位置

    nginx的配置放在nginx.conf文件中,一般我们可以使用以下命令查看服务器中存在的nginx.conf文件. locate nginx.conf /usr/local/etc/nginx/ng ...

  4. Hook技术简介(有用SDK写的例子)

    钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的.当消息到达后,在目标窗口处理函数之前处理它.钩子机 ...

  5. QT代理Delegates使用实例(三种代理控件)

    效果如下,在表格的单元格中插入控件,用Delegates方式实现 源代码如下: main.cpp文件 #include <QApplication>#include <QStanda ...

  6. 一起学Python:TCP简介

    TCP介绍 TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793 ...

  7. 【u207】最小值

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] N个数排成一排,你可以任意选择连续的若干个数,算出它们的和.问该如何选择才能使得和的绝对值最小. 如: ...

  8. hdu 1558 Segment set (并查集)

    Segment set Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  9. freemarker自己定义标签(一)

    freemarker自己定义标签 1.自己定义标签说明 宏变量存储模板片段能够被用作自己定义指令macro 2.演示样例说明 <html> <head> <meta ht ...

  10. Misultin, Mochiweb, Cowboy, NodeJS 及 Tornadoweb测评

    http://www.oschina.net/translate/a-comparison-between-misultin-mochiweb-cowboy-nodejs-and-tornadoweb ...