Угловые нг-опции случайно не загружаются
У меня есть выпадающее меню, как это:
<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();
};
}
};
}
]
);
У меня проблема в том, что иногда опции выбора не загружаются (кажется, на ПК с более медленным интернет-соединением.
Любые известные проблемы с этим?
заранее спасибо
1 ответ
Решение
У меня была похожая проблема. Это было решено при смене ng-модели после загрузки данных.
$scope.subareas = {};
$http.get('subareas.php')
.success(function(response)
{
$scope.subareas = response;
$scope.SubArea = [];
});