Angular6 QueryList 在什么情况下查询不到数据

发布于 2022-09-11 17:03:08 字数 2005 浏览 16 评论 0

  • Angular7中自己制作了directive,名称是:NextTabDirective在一个业务组件中通过QueryList查询获取该类型的DOM元素

    @ViewChildren(NextTabDirective) inputs: QueryList<NextTabDirective>;
  • 然后在组件的 ngAfterViewInit 中打印出来结果浏览器控制台中打印出来显示没有获取到数据
    图片描述

    都有哪些问题会导致使用QueryList查询不到结果?

  • 自己已经确认的问题:

    1. 自己制作的directive 名称是 NextTabDirective ,这点肯定没有搞错,名称是复制过来的
    2. 该directive 在项目的根模块 app.module.ts 中通过import 引入:

      import { NextTabDirective } from './shared/ccDirective/next-tab.directive';

      同时在 @NgModule 的 declarations 中声明了。

    3. 业务组件的ts文件中也在头部(最上面)引入了:

      import { NextTabDirective } from 'src/app/shared/ccDirective/next-            tab.directive';
    4. 项目结构是:
      app
      |--->app.module.ts
      |--->sharedccDirectivenext-tab.directive.ts
      |--->pagesorderorder.component.html <-- 业务组件html模板文件
      |--->pagesorderorder.component.ts <-- 业务组件ts文件
    5. 下面是自定义directive的全部代码

      
      import { Directive, HostListener, ElementRef } from '@angular/core';
      
      @Directive({
        selector: '[next-tab]'
      })
      export class NextTabDirective {
      
        self:any;
        nextControl:any;
      
        @HostListener("keydown.enter", ["$event"])
        onEnter(event: KeyboardEvent) {
          if (this.nextControl) {
            if (this.nextControl.focus) {
              this.nextControl.focus();
              this.nextControl.select();
              event.preventDefault();
              return false;
            }
          }
        }
      
        constructor(private control: ElementRef) {
          this.self=control.nativeElement;
        }
      }
      
    6. order.component.html 的标签中使用自定义directive的代码如下:
      <input type="text" next-tab>
疑问:
    同样的方法,单独制作一个项目测试通过的,把这些代码搬到我开发中的项目里就获取不到数据,通过
@ViewChildren(NextTabDirective) inputs: QueryList<NextTabDirective>;
获取不到我哪里错了?thanks for any help..


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

瘫痪情歌 2022-09-18 17:03:08

module 中 exports 了吗

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文