Angular Material 自动完成:当有多个自动完成控件时,自动完成面板不会在页面滚动时折叠
Angular Material Autocomplete: Autocomplete Panel doesn't collapse on Page Scroll when there are more than one Autocomplete control
如 stackblitz 所示,当有多个自动完成控件时,我在关闭自动完成控件时遇到问题,但页面滚动上的第一个自动完成控件(城市)除外,如 stackblitz 示例所示。
重现步骤:
首先点击 - 城市 自动完成控件并让它保持展开状态。
尝试进行页面级别滚动,然后 City 自动完成控件崩溃。
现在点击第二个 - State/Country 自动完成控件并让它保持展开状态。
尝试进行页面级别滚动并查看 State/Country 自动完成控件不会折叠。
预期行为:State/Country自动完成控件应该像页面滚动时的城市自动完成控件一样折叠。
实际行为:State/Country自动完成控件不会在页面滚动时折叠。
您应该使用 @ViewChildren
装饰器来保存每个 MatAutocompleteTrigger
s:
@ViewChildren(MatAutocompleteTrigger) autoCompleteTriggers: QueryList< MatAutocompleteTrigger>;
closePanels() {
this.autoCompleteTriggers.forEach(trigger => {
if (trigger.panelOpen) {
trigger.closePanel();
}
});
}
如 stackblitz 所示,当有多个自动完成控件时,我在关闭自动完成控件时遇到问题,但页面滚动上的第一个自动完成控件(城市)除外,如 stackblitz 示例所示。
重现步骤:
首先点击 - 城市 自动完成控件并让它保持展开状态。
尝试进行页面级别滚动,然后 City 自动完成控件崩溃。
现在点击第二个 - State/Country 自动完成控件并让它保持展开状态。
尝试进行页面级别滚动并查看 State/Country 自动完成控件不会折叠。
预期行为:State/Country自动完成控件应该像页面滚动时的城市自动完成控件一样折叠。
实际行为:State/Country自动完成控件不会在页面滚动时折叠。
您应该使用 @ViewChildren
装饰器来保存每个 MatAutocompleteTrigger
s:
@ViewChildren(MatAutocompleteTrigger) autoCompleteTriggers: QueryList< MatAutocompleteTrigger>;
closePanels() {
this.autoCompleteTriggers.forEach(trigger => {
if (trigger.panelOpen) {
trigger.closePanel();
}
});
}