AngularJS实现多级下拉框

Diane ·
更新时间:2024-09-20
· 690 次阅读

本文实例为大家分享了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 下拉框

需要 登录 后方可回复, 如果你还没有账号请 注册新账号