动态下拉列表的数量根据AngularJS 1.x中上一个下拉列表中的值生成

时间:2018-07-18 13:59:14

标签: angularjs angularjs-ng-repeat angularjs-ng-options angularjs-select

我有以下要求:我有一个下拉列表,其中包含Employee记录,并且在页面加载(JSON格式)时会被填充。在该数据列表中,我有一个值为Approval Level,它是一个整数值。

现在,我希望当我选择员工时,根据他的“批准级别”值,我希望下拉列表中不填充员工数据。 表示当我选择批准级别为5的员工时,我要在下面的5个下拉列表中填充员工记录

HTML:-
       <div class="col-md-6">
                        <select class="form-control crl dropdown" placeholder="Approval Level" name="ApprovalLevel" id="ApprovalLevelDDL" required ng-model="insert.Approval_Level" ng-change="makeArray()">
                            <option value="">Employee Name</option>
                            <option value="{{list.Approval_Level}}" ng-repeat="list in EmpList">{{list.Emp_Name}}</option>
                        </select>
                        <span style="color:red" class="error" ng-show="myForm.DesignationName.$error.required || myForm.DesignationName.touched.required">
                            Require
                        </span>
                    </div>
                </div>

                <div class="row col-md-10 col-md-offset-1 mypadd" ng-repeat="o in arr">
                    <div class="col-md-6">
                        <label for="DepartmentHead">Approval Head</label>
                    </div>
                    <div class="col-md-6">
                        <select class="form-control crl dropdown" placeholder="Approval Level" name="ApprovalLevel_{{$index}}" id="ApprovalLevelDDL_{{$index}}" required ng-model="selectedItem" ng-change="HeadEmployeeList({{$index}})" ng-options="list.Emp_ID as list.Emp_Name for list in ddlArr">
                        </select>
                    </div>
                </div>

角度控制器:-  函数EmployeeList(){         $ http({             方法:“ POST”,             网址:“ / Employee / GetEmployeeList /”,             数据类型:“ json”,             标头:{“ ContentType”:“ application / json”},         })。then(函数(数据){             $ scope.EmpList = data.data.EmpList;             $ rootScope.DataList = data.data.EmpList;             $ scope.edatalist = data.data.EmpList;             console.log($ rootScope.DataList);         })。catch(函数(数据){             $ scope.error =数据。数据;             console.log($ scope.error);         });     };     EmployeeList();

$scope.EmployeeDataList = function () {
    $http({
        method: "POST",
        url: "/Employee/GetEmployeeList/",
        datatype: "json",
        headers: { "ContentType": "application/json" },
    }).then(function (data) {
        //$rootScope.DataList = data.data.EmpList;
        $scope.edatalist = data.data.EmpList;
        console.log($scope.edatalist);
    }).catch(function (data) {
        $scope.error = data.data;
        console.log($scope.error);
    });
};

$scope.insert = $rootScope.DataList;
$scope.arr = [];
$scope.newardata = [];
$scope.ddlArr = [];
$scope.makeArray = function () {
    console.log($scope.insert);
    $scope.arr.length = 0;
    $scope.EmpList.Emp_ID = parseInt($scope.EmpList.Emp_ID, 10);
    $scope.EmployeeDataList();
    for (var i = 0; i <= parseInt($scope.insert.Approval_Level) ; i++) {
        $scope.arr.push(i);
        $scope.EmpList[i].Emp_ID = parseInt($scope.EmpList[i].Emp_ID, 10);
        $scope.ddlArr.push($scope.EmpList[i]);
    }
    $scope.newardata = $scope.arr;
    console.log($scope.arr);
    console.log($scope.ddlArr);
}
console.log($scope.newardata);


var Emplist = [];
var EDATA = [];

$scope.HeadEmployeeList = function (id) {

    console.log($scope.newardata);
    var eid = {};
    console.log(Emplist);
    var data = parseInt(this.EmpList.Emp_ID);
    console.log(data);
    var index = Emplist.indexOf(parseInt(this.insert.Emp_ID));
    var subindex = EDATA.indexOf(parseInt($scope.EmpList.Emp_ID,10));
    console.log(index);
    console.log(subindex);
    if (index < 0){
        Emplist.push(this.insert.Emp_ID);
        EDATA.push($scope.EmpList.Emp_ID,10);
    }
    console.log(Emplist.indexOf(this.insert.Emp_ID));
    console.log(Emplist);

    console.log(EDATA.indexOf(parseInt($scope.EmpList.Emp_ID,10)));
    console.log(EDATA);

    $scope.EDATA = EDATA;
};

0 个答案:

没有答案