2015-04-02 64 views
0

我有一个下拉菜单,像这样:角NG-随机选择不加载

<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; 
    }); 

我还使用自举选择指令:

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(); 
        }; 
       } 
      }; 
     } 
    ] 
); 

我遇到的问题是,有时选择选项不会加载(似乎是在pc上的一个较慢的互联网c onnection。

任何已知的问题?

在此先感谢

回答

0

我有类似的问题。在数据加载后更改ng模型时解决了这个问题。

$scope.subareas = {}; 

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