Angular 如何使用库组件的选择器?

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

我制作了一个库,通过npm链接导入到我的应用程序中。该库由一个模块组成,该模块包含一个带有名为app sqv的选择器的组件a。 在我的应用程序中,我有组件B和模板B。在模板B中,我想使用选择器

当然,对于一个内部组件,这是可能的,但是在这里我不能做到,可能是因为对于一个外部库,有一些我没有考虑的东西? 我已经用经典的import语句将组件A导入组件B。我还可以在该组件中使用该函数,因此我排除了导入错误

模块a.ts:

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之前。我不完全理解,但我认为这是编译过程中的一个问题,可能是我使用了一些与配置中的设置不兼容的旧语法。。。无论如何,谢谢你的帮助!!!