当页面加载时需要选择的表单中的AngularJs级联下拉列表

时间:2014-09-29 13:13:37

标签: javascript angularjs cascadingdropdown

喜欢AngularJs,但目前仍停留在大多数应用程序应该具有的典型场景中。然而,在研究/玩了将近6个小时后,我找不到解决方案!

基本上,我的表单有两个下拉列表和'区域'选择区域后选择选项加载:

<div class="form-group">
            <label>Regions</label>
            <select class="form-control" ng-model="selectedRegion.Id" ng-options="r.Id as r.Description for r in regions" ng-change="GetAreas(selectedRegion.Id)">
                <option value="">Please select a region..</option>
            </select>
        </div>
        <div class="form-group">
            <label>Areas</label>
            <select class="form-control" ng-model="selectedArea.Id" ng-options="a.Id as a.Description for a in areas">
                <option value="">Please select an area..</option>
            </select>
        </div>

在我的控制器中,首先我得到父模型,让我们说#34;客户&#34;保存在之前的“创建”中。视图。此客户模型具有RegionId和AreaId,当加载上述“编辑”时,看,我需要被选中。

我通过这个JS代码实现了这个目标:

manageCustomerRepository.getCustomer($routeParams.customerId).then(function(mainDetails) {
        $scope.customer = mainDetails;

        masterDataRepository.GetRegions().then(function (regionList) {
            $scope.regions = regionList;
            var index;
            for (var i = 0; i < $scope.regions.length; i++) {
                var currentRegion = $scope.regions[i];
                if (currentRegion.Id === parseInt($scope.customer.RegionId)) {
                    index = i;
                    break;
                }
            }
            $scope.selectedRegion = $scope.regions[index];
        });

        masterDataRepository.GetAreas($scope.customer.RegionId).then(function (areaList) {
            $scope.areas = areaList;
            var index;
            for (var i = 0; i < $scope.regions.length; i++) {
                var currentArea = $scope.areas[i];
                if (currentArea.Id === parseInt($scope.customer.AreaId)) {
                    index = i;
                    break;
                }
            }
            $scope.selectedArea = $scope.areas[index];
        });
    });

当加载编辑视图时,我能够获取区域的所有区域和区域,并从客户对象获取RegionId和AreaId,并选择正确的选项。但是,我似乎无法更改所选区域。选中的选项=&#39;已选中&#39;属性没有改变,我无法让他们改变价值!

另外,我不完全确定当我使用ng-model =&#39; selectedRegion.Id&#39;和selectedArea.Id,我的角度控制器中会有一个客户对象。

感谢任何帮助!

0 个答案:

没有答案