AngularJS多级下拉框
Lulus 人气:0<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; } }
加载全部内容