angular - Angular-Slickgrid 下拉框过滤器在每次单击过滤器后会在网格下方弹出额外的下拉框
问题描述
我正在使用 Angular 版本 11 和 Angular-Slickgrid 版本 2.23.0
我在 Angular-Slickgrid 中添加了一个下拉框过滤器。过滤器功能没有问题,但是每次单击过滤器时,网格下方都会出现一个额外的下拉框,并且在刷新页面之前它不会消失。
如果我继续单击过滤器,则会出现越来越多的额外下拉框。看起来网页上只有一个额外的框,但是当我打开 html 元素时,我可以看到生成的下拉元素列表。
我查看了关于过滤器的Angular-Slickgrid官方演示页面,每次单击过滤器时,html页面底部都会生成一个带有位置的下拉元素,当我再次单击过滤器时,下拉元素会消失。这是它应该工作的方式,但是当我单击过滤器时下拉框元素不会消失。
请参阅下面的源代码。在调试期间,我删除了所有不必要的代码以仅保留一列,但问题仍然存在。这个问题存在于我项目中的所有下拉框过滤器中。其他只有文本的过滤器效果很好。
非常感谢您的帮助。
解决方案
对于遇到此问题的人,在此处之外进行了讨论,结果证明是因为body
页面中有多个。解释为什么会出现这个问题,Angular-Slickgrid 使用multiple-select.js
外部库,下拉列表实际上是 Filter 输入下的位置,当我们说(位置)时,我们实际上是指移动下拉列表的重新定位(按绝对位置)在输入下和 Angular-Slickgrid 中,我们使用容器,body
因为这是使它显示在其他所有内容上的唯一方法,因此只有一个body
才能正常工作。
Angular-Slickgrid 使用的默认多选选项是
const defaultOptions: MultipleSelectOption = {
autoAdjustDropHeight: true,
autoAdjustDropPosition: true,
autoAdjustDropWidthByTextSize: true,
container: 'body', // <<-- we use `body` for positioning over everything
filter: false,
maxHeight: 275
};
推荐阅读
- javascript - 我如何用 puppeteer 刮取元素标签的值
- python - TypeError:'ResultSet'对象不可调用-python
- python - 将python编译成一个小的exe文件
- php - PHP - 如何让 pack() 返回与常规字符串相同的字符串?
- python - Python中基于Regex的CASE语句
- javascript - 关闭和 for 循环让我感到困惑
- python - 如何将 plt.hist() 的输出分配给变量,以便可以通过调用变量来绘制它?
- c# - 包文件夹内容被标记为签入
- ios - 为什么 addTarget 不会在 Swift 中被删除?
- c# - 为什么从 azure app 服务中的表单发布时出现 404 错误,但它在 localhost 中完美运行