angular - 我的应用程序的每一页上都使用一个组件。我如何声明它以便在全局范围内使用?

标签 angular ionic-framework ionic2 ionic3

我有一个组件 HeroLogoComponent,它在我的应用程序的每个页面的标题元素中使用。它在 app.module 中声明为:

@NgModule({
  declarations: [
  MyApp,
  HeroLogoComponent,
], ...

通过阅读 angular.io 文档,我了解到这应该允许选择器 <hero-logo>用于所有其他 PageComponent。但是,当我将其添加到任何其他页面时,我收到错误

Error: Uncaught (in promise): Error: Template parse errors: 'logo' is not a known element

当我将 PageComponentModule 更改为包含 schemas: [CUSTOM_ELEMENTS_SCHEMA] 时应用程序加载,但组件仅在 HTML 中显示为空

<hero-logo><hero-logo>

里面没有任何模板元素。我宁愿声明/导入此组件一次以便在整个应用程序中使用,而不是在每个单独的 PageComponentModule 中使用。有没有办法做到这一点,以便它可以在全局范围内引用?

谢谢!

编辑:

因此在 app.module.ts 中, Bootstrap 是 IonicApp,因为它是一个 ionic 生成的项目。

bootstrap: [IonicApp],

Bootstrap 中声明的组件是否全局可用?如果是这样,我将如何从 IonicApp 声明它?

最佳答案

使用下面的代码,HeroLogoComponent 将可用于在相同声明数组中声明的每个组件。

@NgModule({
  declarations: [
  MyApp,
  HeroLogoComponent,
], ...

如果您有多个 Angular 模块,并且希望每个 Angular 模块中的每个组件都可以访问它,请按照 Aravind 的建议将其放入共享模块中。然后确保将共享模块导入到您定义的每个具有需要它的组件的 Angular 模块中。

要了解更多信息,请查看:https://www.youtube.com/watch?v=ntJ-P-Cvo7o&t=6s

关于angular - 我的应用程序的每一页上都使用一个组件。我如何声明它以便在全局范围内使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45514667/

相关文章:

angular - 插值数据不起作用

由于某种原因没有出现 Angular 对话窗口

Angular Ivy 类型检查 : Type 'SafeHtml' is not assignable to type 'string'

javascript - Ionic - 将毫秒(长)日期解析为 dd/mm/yyyy

angular - 如何使用 Ionic 生成的页面作为应用程序根页面

javascript - 组件文件夹中 index.js 的好处

android - ionic 构建安卓错误

ionic-framework - ionic wkwebview 随机白屏

ionic2 - Ionic 2 页面更改订阅

cordova - ionic 2 : Use NFC