md-select несколько закрывает при изменении значения в $ scope - PullRequest
0 голосов
/ 17 февраля 2020

текущее поведение?

  1. выбрать элемент из md-select multiple
  2. изменить значение в $scope
  3. md-select закроется само

у нас есть поля фильтра, и некоторые поля используют md-select multiple, и каждый раз, когда мы меняем значение, мы называем конечную точку API, которая будет изменять другое значение, это пример элемента управления:

<md-input-container style="width: 100%;">
    <label ng-bind="control.name || control.key"></label>
    <md-select ng-model="data[control.key]" md-on-open=""
               ng-required="control.required" aria-label="{{control.key}}"
               multiple>
        <md-option ng-if="control.emptyOpt" ng-value="control.emptyOptValue"
                   ng-click="$S.filters[$S.nav.root] = $H.merge({}, $D.filters[$S.nav.root] || {})">
          {{control.emptyOpt}}
        </md-option>
        <!--<md-option ng-repeat="i in control.lookup | orderBy:'te'"
                       ng-value="i.k" ng-bind="i.t || i.te || i.k">
            </md-option>-->
        <md-option ng-repeat="r in control.lookup" value="{{r.k}}">{{r.te}}
        </md-option>
    </md-select>
    <div ng-messages="$f[control.key].$error" role="alert" multiple>
        <div ng-message="required">Required</div>
    </div>
</md-input-container>

и это когда мы вызываем api:

api.GET(query)
.then(function (data) {
    $scope.data = data;
    $scope.$readyTimeout = $timeout(function () {
        $scope.state.ready = true
        $scope.data.$pageCount = $H.keysCount(data.pages || {});
    }, 100);
},function (response) {
    $scope.data = {};
    if (!response.errorDialog) {
        alert($C.global.alerts["404"]);
    }
}).finally(function () {
    $timeout.cancel(overlay_timeout);
    $scope.state.loading = false;
    $scope.state.overlay = false;
})

проблема с этим статусом: $scope.data = data; он закрывает выпадающее меню выбора, когда не должен.

...