Angular 如何使用库组件的选择器?
我制作了一个库,通过npm链接导入到我的应用程序中。该库由一个模块组成,该模块包含一个带有名为app sqv的选择器的组件a。 在我的应用程序中,我有组件B和模板B。在模板B中,我想使用选择器 当然,对于一个内部组件,这是可能的,但是在这里我不能做到,可能是因为对于一个外部库,有一些我没有考虑的东西? 我已经用经典的import语句将组件A导入组件B。我还可以在该组件中使用该函数,因此我排除了导入错误 模块a.ts:Angular 如何使用库组件的选择器?,angular,typescript,templates,module,components,Angular,Typescript,Templates,Module,Components,我制作了一个库,通过npm链接导入到我的应用程序中。该库由一个模块组成,该模块包含一个带有名为app sqv的选择器的组件a。 在我的应用程序中,我有组件B和模板B。在模板B中,我想使用选择器 当然,对于一个内部组件,这是可能的,但是在这里我不能做到,可能是因为对于一个外部库,有一些我没有考虑的东西? 我已经用经典的import语句将组件A导入组件B。我还可以在该组件中使用该函数,因此我排除了导入错误 模块a.ts: import { NgModule, } from '@angular/cor
import { NgModule, } from '@angular/core';
import { AppSqvComponent } from './app-sqv.component';
@NgModule({
imports: [],
exports: [AppSqvComponent],
declarations: [AppSqvComponent],
providers: [],
})
export class EmptyTextModule { }
组件A.ts:
@Component({
selector: 'app-sqv',
templateUrl: './app-sqv.component.html',
providers: []
})
export class AppSqvComponent { .. }
模块B.ts:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
组件B.ts
import {AppSqvComponent} from 'node_modules/viewseq';
TemplateB.html
<div>
<h1>
Testing Library!
</h1>
<app-sqv></app-sqv>
</div>
测试库!
错误状态为组件B无法识别选择器应用程序sqv。您需要在库的public_api.ts中导出组件A
export * from './lib/ComponentA/component-A.component';
和导入app.module中的库模块:
从“我的库”导入{MyLibraryModule}代码>
@NgModule({
declarations: [
...
],
imports: [
...
MyLibraryModule
],
providers: [
],
bootstrap: [AppComponent]
})
您需要将声明/导出了ComponentA
的模块添加到声明了使用ComponentA
的组件的模块的imports数组中。在您的情况下,EmptyTextModule
应该添加到根模块。是的,很抱歉,我没有解释我已经在库的public_api.ts中导出了组件A。我也试着像你在app.module中说的那样导入模块,但它无法识别它。。。我不明白为什么它不能,因为我可以在ComponentB中导入它,并实际使用它的函数…你能在stackbiltz中共享它吗?问题解决了:我使用“ng generate library”从头创建了一个新的库,只是为了重新开始并复制我的旧组件代码。然后在我的ts.config.json中,我必须设置“module”:“esnext”和“target”:“es2015”。在我使用es5之前。我不完全理解,但我认为这是编译过程中的一个问题,可能是我使用了一些与配置中的设置不兼容的旧语法。。。无论如何,谢谢你的帮助!!!