Просьба в сервер с angularJS блокирует вид

Привет.

Оказывается, что у меня есть вид в той, которая внутри одного <select></select> я загружаю все муниципалитеты Колумбии, 1122 реестра, проблема состоит в том, что, когда я вхожу в этот вид пока загружаются эти данные, мне заслоняются остальные inputs.

Это услуга, которая приносит мне данные.

sigc.factory('DptoMpioService', ['$http', '$q', function($http, $q) {
return {
    dptos: dptos,
    mpios: mpios,
    mpios_by_dpto: mpios_by_dpto
}

function mpios()
{
    var defered = $q.defer();
    var promise = defered.promise;
    var config = {
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    };

    $http.get('index.php/Dptompio/mpios/', config)
        .success(function(data) {
            defered.resolve(data);
        }).error(function(err) {
            defered.reject(err)
        });
    return promise
}......

Драйвер

DptoMpioService.mpios().then(function(response) {
                if(response.status == 200) {
                    console.log(response.data)
                    $scope.municipalitys_ = response.data;
                }else {
                    $scope.municipalitys_ = {};
                }
            }).catch(function(fallback){
                console.log(fallback)
            })

html

<div class="col m4 s12">
    <div class="row row-form-my">
        <label class="label-my" for="expeditionplace">Lugar de Expedición</label>
        <select ng-model="user.expeditionplace" name="expeditionplace" id="expeditionplace" class="browser-default select-my">
            <option value="" selected>--Elige--</option>
            <option ng-if="municipalitys_" ng-repeat="municipality in municipalitys_" value="{{municipality.id}}">{{municipality.name}} ({{municipality.namedpto}})</option>
        </select>
      </div>                        
</div>

Как кажется, проблема не консультация, потому что данные прибывают с хорошей погодой базы данных, как consolo.log() как кажется, проблема - в ng-repeat я верю.

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

Заранее большое спасибо.

0
задан 10.10.2016, 03:38
3 ответа

Попытайся использовать ngOptions вместо ngRepeat.

Согласно документации AngularJS с ngRepeat сокращается результат начиная с 2000 выборов с Chrome и IE. Документация находится в следующей ссылке, в разделе Choosing between ngRepeat and ngOptions.

2
ответ дан 24.11.2019, 13:09
  • 1
    Adem и # 225; s я думаю, что загружать 12 ** муниципалитет в единственном select не и #243; ptimo. И если есть муниципалитеты с тем же именем в различных зонах geogr и # 225; ficas? Ты можешь использовать categor и # 237; схвати, например: Выбирать Ведомства, Потом провинции и потом районы –  Giancarlo Ventura 11.10.2016, 20:06

За пределами пробования улучшать результат, построив select я думаю, что ты также был бы должен осведомляться о, заслуживает ли пользователь того, чтобы видеть select с 1000 выборами!. Ты мог бы добавлять компонент select, который позволял бы искать между элементами списка. Например angular-ui/ui-select

https://github.com/angular-ui/ui-select

1
ответ дан 24.11.2019, 13:09

Сначала лучшее состояло бы в том, чтобы использовать ngOptions для этого, добавляя track by $index, или key, который ты полезнее.

В твоей услуге я рекомендую тебе снимать это обещание, которое не необходимо, и остается более читабельным твой код.

function mpios()
{
    var config = {
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    };

    $http.get('index.php/Dptompio/mpios/', config)
        .then(function(res) {
            return res;
        }).catch(function(err) {
            console.error(err)
        });
}

Как дополнительный считает осуществлять searchbox, если ты можешь загружать сначала состояния и на основании этого, загружать муниципалитеты.

0
ответ дан 24.11.2019, 13:09

Теги

Похожие вопросы