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; }
}
AngularJS 多级下拉框的更多相关文章
- avalon.js 多级下拉框实现
学习avalon.js的时候,有一个多级下拉框的例子,地址 戳这里 代码实现了联动, 但是逻辑上面理解有点难度,获取选择的值 和 页面初始化 功能存在问题. 在写地图编辑的时候,也用到了多级下拉框,特 ...
- angularJs实现下拉框多选
话不多说,直接上干货. 肯定需要下拉选插件.必须引入的是 注意 先后顺序 select2.css select2-bootstrap.css select2.min.js angular.min. ...
- WebForm使用AngularJS实现下拉框多级联动
数据准备 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, CateId = , ...
- java 移动开发获取多级下拉框json数据的类和mobile-select-area插件
我这里以行政区划做例子 //这个类是把数据库中的行政区划转化为json格式的data @SuppressWarnings("rawtypes")public class XzqhL ...
- angularjs 实现下拉框编辑数据回显
https://www.cnblogs.com/janice-jia/p/9764938.html 正常的js回显选择,需要添加 select ="selected",angula ...
- 简单JS多级下拉框无刷新
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- angularJS select下拉框检测改变
html:(已引入amazeUI) <div style="width:70px;display:inline-block;"> <form class=&quo ...
- 【经验】angularjs 实现带查找筛选功能的select下拉框
一.背景 对于select的下拉列表,像国家选择这样的功能,全世界那么多国家,一直拉滚动条多辛苦,眼睛也要盯着找,累!so,为优化用户体验,带查找功能的下拉框是非常非常有必要的.都知道jquery里有 ...
- angularjs下拉框实现渲染html
angualrjs处于安全的考虑,插值 指令会对相应字符串进行过滤,避免出现html攻击.但是在一些时候,我们需要渲染html,比如实现一个分级的下拉框,代码如下: <body ng-app=& ...
随机推荐
- PHP移动互联网开发笔记(5)——基础函数库
一.数学函数库 ● floor 舍一取整(向下取整) float floor (float $value); <?php echo(floor(0.60)."<br>&qu ...
- 深度学习框架 —— tflearn 的学习
1. tflearn.data_utils from tflearn.data_utils import to_categorical one_hot 编码: 第一个参数为属性列,第二个参数接受类别个 ...
- WPF实现射线效果动画
原文:WPF实现射线效果动画 最近的一个项目中有个需求是:从一个点向其它多个点发出射线,要求这些射线同时发出,同时到达. 我就想到了用WPF的动画来实现.WPF中有Line类用于绘制直线,但这个类中好 ...
- [GeekBand] 设计模式之观察者模式学习笔记
本文参考文献::GeekBand课堂内容,授课老师:李建忠 :网络资料: http://blog.csdn.net/hguisu/article/details/7556625 本文仅作为自己的学习笔 ...
- AndroidMainifest标签使用说明3——<activity-alias>
格式: <activity-alias android:enabled=["true" | "false"] android:exported=[&quo ...
- spark action之saveastextfile
java /** *saveastextfile 把rdd中的数据保存到文件中,只能指定文件夹 *@author Tele * */ public class SaveasTextFileDemo1 ...
- hive 分区表与数据产生关联的三种方式
所谓关联,可以理解为能够使用select查询到 1.load 这是最常用的一种方式 load data [local] inpath "数据路径" into table table ...
- 零碎笔记之ServiceManager
SM是开机的时候通过init.rc文件启动的,这就保证了它是系统中第一个注册成"服务大管家"的Service,所有的service服务都需要在SM中完成注册. ServiceMan ...
- JavaScript函数实现鼠标指向后带图片的提示效果
转载:http://www.cnblogs.com/jack86514/archive/2009/04/01/1427584.html 当我们在写一个网页程序的时候,很多方法可以提供页面的动态显示,从 ...
- MATLAB使用入门
作者:朱金灿 来源:http://blog.csdn.net/clever101 初步学习了MATLAB的使用,发现MATLAB是一个很好的算法仿真工具.MATLAB也是一门语言,是否会使用这门语言编 ...