текущее поведение?
- выбрать элемент из
md-select multiple
- изменить значение в
$scope
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;
он закрывает выпадающее меню выбора, когда не должен.