【问题标题】:ngMaterial - md-autocomplete - results list showing behind modal formngMaterial - md-autocomplete - 结果列表显示在模态表单后面
【发布时间】:2016-12-08 21:25:04
【问题描述】:

我有模态表单,我想在我的模态表单中包含带有自动完成功能的字段。

为此,我使用来自angular-material#1.1.0md-autocomplete,它提供了这样的功能并且易于使用。

问题是当我在这个字段中写东西时,整个建议列表出现在我的模态窗口后面,但它应该出现在这个模态表单的顶部。

你知道如何解决这个问题吗?

我附上了表单源代码和相关 Angular 控制器的 html 代码。

movie-resource-dialog-controller.js

(function() {
'use strict';

angular
    .module('vodApp')
    .controller('MovieResourceDialogController', MovieResourceDialogController);

MovieResourceDialogController.$inject = ['$http', '$timeout', '$scope', '$stateParams', '$uibModalInstance', 'DataUtils', 'entity', 'MovieResource', 'Movie'];

function MovieResourceDialogController ($http, $timeout, $scope, $stateParams, $uibModalInstance, DataUtils, entity, MovieResource, Movie) {
    var vm = this;

    vm.movieResource = entity;
    vm.clear = clear;
    vm.byteSize = DataUtils.byteSize;
    vm.openFile = DataUtils.openFile;
    vm.save = save;

    $timeout(function (){
        angular.element('.form-group:eq(1)>input').focus();
    });

    function clear () {
        $uibModalInstance.dismiss('cancel');
    }

    function save () {
        vm.isSaving = true;

        if (vm.movieResource.id !== null) {
            MovieResource.update(vm.movieResource, onSaveSuccess, onSaveError);
        } else {
            MovieResource.save(vm.movieResource, onSaveSuccess, onSaveError);
        }
    }

    function onSaveSuccess (result) {
        $scope.$emit('vodApp:movieResourceUpdate', result);
        $uibModalInstance.close(result);
        vm.isSaving = false;
    }

    function onSaveError () {
        vm.isSaving = false;
    }

    vm.setResource = function ($file, movieResource) {
        if ($file && $file.$error === 'pattern') {
            return;
        }
        if ($file) {
            DataUtils.toBase64($file, function(base64Data) {
                $scope.$apply(function() {
                    movieResource.resource = base64Data;
                    movieResource.resourceContentType = $file.type;
                });
            });
        }
    };

    vm.querySearchMoviesLike = function (query) {
        Movie.queryByTitle({
            title: query
        }, onSuccess, onError);
        function onSuccess(data, headers) {
            vm.proposedMovies = data;
        }
        function onError(error) {
            AlertService.error(error.data.message);
        }

        return vm.proposedMovies;
    }
}
})();

movie-resource-dialog.html

 <div class="form-group">
        <label class="control-label">Movie Title</label>
        <md-autocomplete flex
                         md-selected-item="vm.selectedMovie"
                         md-search-text="vm.searchMovieTitle"
                         md-items="item in vm.querySearchMoviesLike(vm.searchMovieTitle)"
                         md-item-text="title"
                         md-delay="300">
            <div layout="row" class="item" layout-align="start center">
                <img data-ng-src="{{'data:' + item.posterContentType + ';base64,' + item.poster}}" style="width: 40px;" />
                &nbsp;&nbsp;
                <span md-highlight-text="vm.searchMovieTitle">{{item.title}}</span>
            </div>
        </md-autocomplete>
    </div>

屏幕截图(看起来像这样): https://i.stack.imgur.com/P6Ln3.png

谢谢你,卢克

【问题讨论】:

标签: css angularjs angularjs-material


【解决方案1】:

您需要覆盖模态 z-index css 属性。将此 css 样式添加到您现有的样式表或页面md-autocomplete-suggestions-container

.md-autocomplete-suggestions-container{  
   z-index:100000 !important; /* any number of choice > 1050*/
  }

【讨论】:

    【解决方案2】:

    我遇到了几乎同样的问题,但在我的情况下,我的列表不可选择,我的问题是因为当模式打开时它有一个通用的“指针事件:无”所以我在我的全局 css 上添加了下面的 css它解决了我的问题。希望它可以帮助别人。

    .md-autocomplete-suggestions-container{  
       pointer-events: all !important;
     }
    

    【讨论】:

      【解决方案3】:

      对于仍在寻找这个的任何人,我发现这项工作对我有用

      /deep/ .cdk-overlay-container { z-index: 9999; }
      
      

      【讨论】:

        猜你喜欢
        • 2019-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多