Angular 7滚动事件不触发

2024-07-03

用于在 MatDialog 组件中的 Angular 应用程序中实现间谍导航栏。 我实现了一个指令来监视滚动事件,使用

@HostListener('window:scroll', ['$event'])

我也尝试过'scroll'作为事件名称。但该事件似乎并没有火起来。我尝试了几种方法,例如。 G。通过直接在对话框组件中使用 HostListener 通过使用 JavaScriptwindow.onscroll()函数和 rxjsfromEvent()功能但没有成功。

尝试其他 CSS 事件(例如window:click)工作正常。 我还在一个“正常”组件中尝试过它,该组件不显示为对话框,但该事件也不会在那里触发。

造成这种行为的原因是什么?


这是一个替代方案solution https://stackoverflow.com/questions/44516017/how-to-handle-window-scroll-event-in-angular-4/54005183#54005183效果相当好。

简而言之:

ngOnInit() {
    // Add an event listener to window
    // Window can be defined in the pollyfiles.ts as: 
    // if (window) {
    //    (window as any).global = window;
    // }
    window.addEventListener('scroll', this.scroll, true); //third parameter
}

ngOnDestroy() {
    window.removeEventListener('scroll', this.scroll, true);
}

scroll = (event: any): void => {
  // Here scroll is a variable holding the anonymous function 
  // this allows scroll to be assigned to the event during onInit
  // and removed onDestroy
  // To see what changed:
  const number = event.srcElement.scrollTop;
  console.log(event);
  console.log('I am scrolling ' + number);
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 7滚动事件不触发 的相关文章

  • 我怎样才能制定一个结构指令来包装我的 DOM 的一部分?

    目前 我的 HTML 中有以下行 p this is my first line p 使用包装器指令 我想添加第二段并将其包装在 div 中 因此它看起来像这样 p this is my first line p 然后该指令将添加包装器和第
  • ngFor 块内模板中的异步管道触发 http GET 调用循环

    我有以下组件模板 div div span next date dd MM yyyy span div div getNext 是一个简单的方法 返回一个Observable
  • Angular 5:表内的动态表单验证

    我正在尝试使用表单组验证表内的输入字段 但无法实现相同的目标 我使用 ngFor 来迭代数据 因为我必须在表的第一列中显示该数据 而其他列只是输入文本字段 我必须在其中添加表单验证 因此 我添加了该字段的唯一表单控件名称的索引 HTML代码
  • ngx-bootstrap typeahead http 请求返回对象 Object

    我正在尝试构建一个返回 JSON 的服务的预输入 但是我的代码返回 object Object 而不是值 我究竟做错了什么 这似乎与我的 typeaheadoption 未正确映射到结果有关 但我不确定为什么会发生这种情况 这来自 ngx
  • Angular Material 7 Datepicker:禁用多年视图

    我使用 angular material 7 0 0 rc 0 中的 MatDatepicker 并制作了一个复杂的过滤器 将时间选择器中的每个可见日期与包含大约 200 或 300 个值的数组中的每一天进行比较 每次我将日期选择器切换到多
  • Bootstrap 样式不适用于 Angular2 组件

    Bootstrap 样式不适用于 Angular2 组件 在以下 Angular2 组件中 它不能作为 ui 中的引导流体容器工作 如果我在带有 div 元素的组件内使用 container fluid 则会在作品中出现 例如 不工作 Co
  • 使用按键选择 PrimeNG 表上的行

    我正在使用 PrimeNG 表 并尝试选择pSelectableRow通过按键 我有一个全局搜索输入 它将过滤表的所有结果 当用户完成搜索时 我希望他们能够单击键盘上的按钮并从过滤的选项中选择行 目前 如果用户正在搜索并且输入框获得焦点 则
  • Angular 2 中的动态路由加载失败。 (测试版)

    我想从以 JSON 格式获取的服务动态加载 RouteConfig 的路由 path about name About component AboutComponent path contact name Contact component
  • Angular:无法通过路由器传递对象?

    我一直在努力寻找一个简单的解决方案 我有一个显示项目列表的 for 循环 单击其中一项会将您引导至详细组件 我只希望所选项目在详细组件中可用 由于某种原因 没有简单的解决方案 据我所知 我希望会有这样的事情 这就是我想要的 但是 这当然行不
  • ionic2 保持侧面菜单打开

    我正在使用 ionic 2 应用程序左侧有一个离子菜单 当我打开菜单并触摸页面区域时 该菜单会不断关闭 我想让它保持打开状态 并且仅当用户明确命令关闭它时才关闭 通过关闭按钮 或者可能向后滑动 等等 有什么选择或解决方法可以这样做吗 EDI
  • 如何在 Angular2 中更新矩阵参数

    在 Angular2 中 有没有办法更新矩阵参数 但导航到相同的组件 基本上希望从如下所示的网址轻松转换 search term paris pageSize 24 currentPage 1 someFilter value 做同样的事情
  • Jasmine 测试中 AfterViewInit 的生命周期钩子

    我对与 Jasmine 测试相关的生命周期挂钩感到困惑 LifeCycle Angular 文档没有提到测试https angular io guide lifecycle hooks https angular io guide life
  • 如何在 Typescript 类中创建 Angular 5 HttpClient 实例

    我正在编写一个包含 httpClient 的基类 它用于进行 REST api 调用 如果在构造函数中定义 则 httpClient 变量设置正确 但在私有变量中未定义 这是我的示例代码 Injectable export class My
  • Angular 4 投射http响应的正确方法

    我在 Angular 4 中创建了一个服务 并使用以下代码通过 REST JSON Angular 的新功能 获取数据 界面 export interface IItem Id number Title string Service imp
  • Angular 2:NgbModal 在视图中嵌入

    假设我有这样的模态模板 div class modal header h3 h3 div div class modal body div
  • 使用 NgModel 绑定将数字变成字符串

    我不明白 Typescript 和 Angular 的这种行为 我的组件 html
  • 向 Angular 应用程序添加多个 HTTP 拦截器

    如何向 Angular 4 应用程序添加多个独立的 HTTP 拦截器 我尝试通过扩展来添加它们providers具有多个拦截器的数组 但真正执行的只有最后一个 Interceptor1被忽略 NgModule declarations im
  • Angular 2 模态弹出错误“表达式在检查后已更改”

    演示应用程序的 Github 存储库 https github com eddy80310 formBug 我有一个非常简单的应用程序 其中包含应用程序组件 子组件 帐户 处理消息对话框组件 弹出模式 的警报服务 为了演示目的 我有两种相同
  • 如何在ionic 2中生成和显示QR码

    我找到了在 Angular 和 ionic 1 中生成条形码的文档 但我需要在 Ionic 2 项目中生成一个 尝试 JsBarcode 项目 有一个 Angular 1 的包装器 我使用了本期中的说明来让它在 Angular 2 上工作
  • 如何在角度4中使用addHTML

    我试图在 Angular 中使用 jspdf 库的 addHTML 函数 并且已经安装了 html2Canvas 但出现错误 这是我的 demo component ts 文件 import Component OnInit ViewChi

随机推荐

  • 如何使用东亚文本强制 Win32 RichEdit 回退到 SimSun?

    我在 Window 注册表中为我的字体设置了链接到 SimSun 的字体 当我将该字体应用于 Richedit 控件时 它具有以下行为 首先 它显示 SimSun 好的 当我添加不是 CKJ unicode 的文本 然后在 CKJ 中添加更
  • 如何使用东亚文本强制 Win32 RichEdit 回退到 SimSun?

    我在 Window 注册表中为我的字体设置了链接到 SimSun 的字体 当我将该字体应用于 Richedit 控件时 它具有以下行为 首先 它显示 SimSun 好的 当我添加不是 CKJ unicode 的文本 然后在 CKJ 中添加更
  • 通知中心缺少 iOS 应用程序 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 问题 该应用程序不会出现在通知中心 安装完成后无法立即接收推送通知 并且该应用程序通过以下方式注册推送通知registerForRemot
  • 通知中心缺少 iOS 应用程序 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 问题 该应用程序不会出现在通知中心 安装完成后无法立即接收推送通知 并且该应用程序通过以下方式注册推送通知registerForRemot
  • 循环遍历对象 php 的所有属性

    如何循环遍历对象的所有属性 现在我必须编写一个新的代码行来打印对象的每个属性 echo obj gt name echo obj gt age 我可以使用 foreach 循环或任何循环遍历对象的所有属性吗 像这样的东西 foreach o
  • 循环遍历对象 php 的所有属性

    如何循环遍历对象的所有属性 现在我必须编写一个新的代码行来打印对象的每个属性 echo obj gt name echo obj gt age 我可以使用 foreach 循环或任何循环遍历对象的所有属性吗 像这样的东西 foreach o
  • 如何保存“CroppedBitmap”

    我创建了一个裁剪后的位图 现在我想保存它 我知道如何保存位图框架 但我不知道如何将其转换为位图框架 Code Create an Image element Dim croppedImage As New Image croppedImag
  • 如何保存“CroppedBitmap”

    我创建了一个裁剪后的位图 现在我想保存它 我知道如何保存位图框架 但我不知道如何将其转换为位图框架 Code Create an Image element Dim croppedImage As New Image croppedImag
  • 录制视频时保持预览回调?

    我目前正在使用 onPreviewCallback 这样我就可以在预览时从相机捕获帧并通过 http 流式传输它们 这可行 但随后我发出命令开始录制 而且似乎我不再有预览回调 那么 如何保留预览回调 以便我既可以将帧从表面发送到我的服务器
  • 录制视频时保持预览回调?

    我目前正在使用 onPreviewCallback 这样我就可以在预览时从相机捕获帧并通过 http 流式传输它们 这可行 但随后我发出命令开始录制 而且似乎我不再有预览回调 那么 如何保留预览回调 以便我既可以将帧从表面发送到我的服务器
  • 为什么 BOOST_FOREACH 有时不适用于 C++ 字符串?

    我正在使用 BOOST FOREACH 来迭代 C 字符串的字符 如下所示 void foobar const string str BOOST FOREACH const char ch str Do something with ch
  • 为什么 BOOST_FOREACH 有时不适用于 C++ 字符串?

    我正在使用 BOOST FOREACH 来迭代 C 字符串的字符 如下所示 void foobar const string str BOOST FOREACH const char ch str Do something with ch
  • 房间预订sql查询

    我在编写 sql 以从表中获取可用房间时遇到问题 我的表结构如下 表 预订 booking id room id start datetime end datetime customer id 001 1 12 09 2012 2 35pm
  • C/C++ 时区正确时间转换(自纪元以来的秒数)

    我想知道自纪元以来的秒数 值得注意的是 我不希望进行转换的机器在哪里 时区字符串应该足够了 我有这个测试程序 pt cc include
  • C/C++ 时区正确时间转换(自纪元以来的秒数)

    我想知道自纪元以来的秒数 值得注意的是 我不希望进行转换的机器在哪里 时区字符串应该足够了 我有这个测试程序 pt cc include
  • 收到错误“创建 HelloWorld 错误:TypeError:无法将 undefined 或 null 转换为对象”

    Solidity 是个新手 刚刚在 Remix IDE 中尝试了第一个 HelloWorld 智能合约 并在尝试部署智能合约时偶然发现了这个错误 creation of HelloWorld pending creation of Hell
  • 从流输入中解析没有根元素的 XML 片段列表

    在 Java 中使用 SAX api 解析流输入中没有根元素的 XML 片段列表是否可行 我尝试解析这样的 XML 但得到了 org xml sax SAXParseException The markup in the document
  • 收到错误“创建 HelloWorld 错误:TypeError:无法将 undefined 或 null 转换为对象”

    Solidity 是个新手 刚刚在 Remix IDE 中尝试了第一个 HelloWorld 智能合约 并在尝试部署智能合约时偶然发现了这个错误 creation of HelloWorld pending creation of Hell
  • Angular 7滚动事件不触发

    用于在 MatDialog 组件中的 Angular 应用程序中实现间谍导航栏 我实现了一个指令来监视滚动事件 使用 HostListener window scroll event 我也尝试过 scroll 作为事件名称 但该事件似乎并没
  • Angular 7滚动事件不触发

    用于在 MatDialog 组件中的 Angular 应用程序中实现间谍导航栏 我实现了一个指令来监视滚动事件 使用 HostListener window scroll event 我也尝试过 scroll 作为事件名称 但该事件似乎并没