раскрывающийся список множественного выбора в angularjs работает только при инициализации контроллера - PullRequest
0 голосов
/ 30 июня 2018

Я использую jquery, выпадающий список множественного выбора. Я хочу заполнить раскрывающийся список множественного выбора (талуки) при событии selectionChange другого обычного (одиночного выбора) раскрывающегося списка (город). Я не могу понять, почему выпадающий список множественного выбора заполняется при начальной загрузке контроллера, а почему нет при изменении выбора другого выпадающего списка. Не могли бы вы мне помочь. Спасибо.

Сценарий - 1 => Это прекрасно работает

 <div ng-controller="tempController" ng-init="initializeController()" ng-cloak>
         <select id="multiSelect" name="multiSelect" multiselect=""
           multiple="" ng-model="selectedTalukas" ng-options="option.talukaId as 
           option.label for option in talukas"></select>
</div>



 // .js


$scope.selectedTalukas = [];
     $scope.initializeController = function () {            
                            $scope.talukas = [
                              { talukaId: 1, label: 'Taluka1' },
                              { talukaId: 2, label: 'Taluka2' },
                              { talukaId: 3, label: 'Taluka3' }
                            ]
        }

Сценарий - 2 => Это НЕ работает нормально - ПОЧЕМУ

 <select id="city" class="form-control select2" name="ddlCity" ng-model="c" ng-options="c as c.name for c in city | orderBy:'name'"
ng-change="selectedCityChange(c)" >  
</select>

 <select id="multiSelect" name="multiSelect" multiselect=""
   multiple="" ng-model="selectedTalukas" ng-options="option.talukaId as 
   option.label for option in talukas"></select>



 $scope.selectedCityChange = function (selectedValue) {
                if (selectedValue !== undefined) {
                    $scope.selectedCity = selectedValue;
                    $scope.selectedCityId = selectedValue.cityId;
                    $scope.ajaxPost(selectedValue.cityId,
                        '/api/Taluka/getTalukasForSelectedCity',
                        $scope.selectedCityChangeComplete,
                        $scope.selectedCityChangeError);
                }
            };

            $scope.selectedCityChangeComplete = function (response) {               
                $scope.talukas = response.data.talukaMasters;          

            }
...