2015-04-02 3 views
0

У меня есть выпадающее меню, как это:угловые нг-варианты случайно не загружая

<select selectpicker name="SubArea" ng-model="search.SubArea" ng-options="SubArea.SubArea as (SubArea.SubArea + ' (' + SubArea.Count + ')') for SubArea in subareas | orderBy:'SubArea'" ng-multiple="true" multiple title="All Areas" data-size="auto" data-header="Select Areas" data-live-search="true" data-selected-text-format="count > 2"> 
    </select> 

Это в контроллере:

$scope.subareas = {}; 

$http.get('subareas.php') 
    .success(function(response) 
    { 
    $scope.subareas = response; 
    }); 

Я также с помощью этого Bootstrap выберите директиву:

angular.module('angular-bootstrap-select', []) 
.directive('selectpicker', 
    [ 
     '$timeout', 
     function($timeout) { 
      return { 
       restrict: 'A', 
       require: ['?ngModel'], 
       compile: function(tElement, tAttrs) { 
        tElement.selectpicker(); 

        if (angular.isUndefined(tAttrs.ngModel)) { 
         throw new Error('Please add ng-model attribute!'); 
        } 

        return function(scope, element, attrs, ngModel) { 
         if (angular.isUndefined(ngModel)){ 
          return; 
         } 

         scope.$watch(attrs.ngModel, function(newVal, oldVal) { 
          if (newVal !== oldVal) { 
           $timeout(function() { 
            element.selectpicker('val', element.val()); 
           }); 
          } 
         });        

         ngModel.$render = function() { 
          element.selectpicker('val', ngModel.$viewValue || ''); 
         }; 

         $timeout(function() { 
          element.selectpicker('refresh'); 

          element.change(function() { 
           if ($(this).val() !== '') { 
            $('.form-search .bootstrap-select.open').addClass('selected-option-check'); 
           }else { 
            $('.form-search .bootstrap-select.open').removeClass('selected-option-check'); 
           } 
          }); 


         },1000); 


         ngModel.$viewValue = element.val(); 
        }; 
       } 
      }; 
     } 
    ] 
); 

проблема у меня в том, что иногда выбрать параметры не загружаются (кажется, на ПК с более медленным интернетом с onnection.

Любые известные проблемы с этим?

Заранее спасибо

ответ

0

У меня была аналогичная проблема. Он был решен при изменении ng-модели после загрузки данных.

$scope.subareas = {}; 

$http.get('subareas.php') 
    .success(function(response) 
    { 
    $scope.subareas = response; 
    $scope.SubArea = []; 
    }); 
Смежные вопросы