Angular6 QueryList 在什么情况下查询不到数据
Angular7中自己制作了directive,名称是:NextTabDirective在一个业务组件中通过QueryList查询获取该类型的DOM元素
@ViewChildren(NextTabDirective) inputs: QueryList<NextTabDirective>;
- 然后在组件的 ngAfterViewInit 中打印出来结果浏览器控制台中打印出来显示没有获取到数据
都有哪些问题会导致使用QueryList查询不到结果?
自己已经确认的问题:
- 自己制作的directive 名称是 NextTabDirective ,这点肯定没有搞错,名称是复制过来的
该directive 在项目的根模块 app.module.ts 中通过import 引入:
import { NextTabDirective } from './shared/ccDirective/next-tab.directive';
同时在 @NgModule 的 declarations 中声明了。
业务组件的ts文件中也在头部(最上面)引入了:
import { NextTabDirective } from 'src/app/shared/ccDirective/next- tab.directive';
- 项目结构是:
app
|--->app.module.ts
|--->sharedccDirectivenext-tab.directive.ts
|--->pagesorderorder.component.html <-- 业务组件html模板文件
|--->pagesorderorder.component.ts <-- 业务组件ts文件 下面是自定义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; } }
- order.component.html 的标签中使用自定义directive的代码如下:
<input type="text" next-tab>
疑问:
同样的方法,单独制作一个项目测试通过的,把这些代码搬到我开发中的项目里就获取不到数据,通过
@ViewChildren(NextTabDirective) inputs: QueryList<NextTabDirective>;
获取不到我哪里错了?thanks for any help..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
module 中
exports
了吗