【发布时间】:2022-01-09 12:42:34
【问题描述】:
场景:
我们有一个使用许多库的生产 Angular 应用程序,包括:ng-select、angular-fontawesome、ng2-charts、ngx-quill、ng-bootstrap 和依此类推……没有什么不正常的。
出于某种原因,ng-bootstrap(以及其他一些较小的库)在 VS Code 中出现了问题:库中的每个组件/指令都显示了一个错误,它可以'找不到:
ngbNav使用示例:
<ul ngbNav #nav="ngbNav" [(activeId)]="active" class="nav-tabs">
</ul>
问题:
VS Code 显示红色,错误提示基本无效:
Can't bind to 'activeId' since it isn't a known property of 'ul'
和:
There is no directive with "exportAs" set to "ngbNav"
是的,NgbModule 被导入到 app.module.ts
imports: [
CommonModule,
FormsModule,
BrowserModule,
AppRoutingModule,
HttpClientModule,
RouterModule,
BrowserAnimationsModule,
NgbModule,
...
]
可能(有点)不标准的一件事是我们在应用程序中大量使用了延迟加载模块。
但是,在那些使用这些组件的“子”模块中,我们也在<module-name>.module.ts 文件中导入了NgbModule。
陌生感:
应用程序本身运行良好:本地开发没有编译错误,所有 ng-bootstrap 组件都运行良好,Lint 和单元测试运行良好,应用程序构建成功,生产中没有问题。
这让我认为这可能是 VS Code eslint 或 angular language service 问题,但我尝试重新安装所有可能相关的扩展,但没有任何乐趣。
问题:
有谁知道这是什么原因造成的以及如何补救?这不是一个炫耀,但让编辑器有效有助于调试和探索库的使用。
【问题讨论】:
-
检查你是否已经导入了 ngbModule,在这个组件中声明了你正在使用 ngbNav
-
@zainhassan 是的,它是在声明组件的同一位置导入的。 ng-bootstrap 组件和指令在 UI 中都可以正常工作,只有编辑器显示错误。
标签: angular typescript visual-studio-code ng-bootstrap