当前位置: 首页 > 知识库问答 >
问题:

angular中的核心模块组件和共享模块实现

傅献
2023-03-14

核心模块有CommonModule和HttpClientModule导入、CoreComponent声明和data service作为Provider。

共享模块导出用于数据表示的组件(ProductSectionComponent)

CoreComponent具有“app-product-section”标记。

应用程序模块:


    import { SharedModule } from './shared/shared.module';
    import { CoreModule } from './core/core.module';
    import { BrowserModule } from '@angular/platform-browser';
    import { NgModule } from '@angular/core';

    import { AppComponent } from './app.component';

    @NgModule({
      declarations: [
        AppComponent
      ],
      imports: [
        BrowserModule,
        CoreModule,
        SharedModule
      ],
      providers: [],
      bootstrap: [AppComponent]
    })
    export class AppModule { }

核心模块:


    import { DataService } from './../services/data.service';
    import { NgModule, Optional, SkipSelf } from '@angular/core';
    import { CommonModule } from '@angular/common';
    import { CoreComponent } from './core.component';
    import { HttpClientModule } from '@angular/common/http';

    @NgModule({
      imports: [
        CommonModule,
        HttpClientModule
      ],
      declarations: [CoreComponent],
      providers: [DataService],
      exports: [CoreComponent]
    })
    export class CoreModule {
      /* make sure CoreModule is imported only by one NgModule the AppModule */
      constructor (
        @Optional() @SkipSelf() parentModule: CoreModule
      ) {
        if (parentModule) {
          throw new Error('CoreModule is already loaded. Import only in AppModule');
        }
      }
    }

核心.组件:


    <app-product-section></app-product-section>


    import { ProductSectionComponent } from './../public/product-section/product-section.component';
    import { NgModule } from '@angular/core';
    import { CommonModule } from '@angular/common';

    @NgModule({
      declarations: [ProductSectionComponent],
      imports: [
        CommonModule
      ],
      exports: [
        ProductSectionComponent
      ]
    })
    export class SharedModule { }

共有1个答案

茅昀
2023-03-14

CoreModule背后的意图是保存整个应用程序中使用的所有单例服务。

就SharedModule而言,它应该保存UI组件、服务、管道等,这些组件可以被多个功能模块使用,而不是一个功能模块。

我认为你必须重新考虑一下你的项目的结构。请参阅Angular.io指南链接

 类似资料:
  • 这些模块是 ansible 团队维护的核心模块,同样也是 ansible 自带的模块,在收到的的请求中,它们有比 “extras” 源更高的优先级 核心模块的源码托管在 Github 的 ansible-modules-core repo. 如果你确信你在核心模块上发现了一个 bug ,同时你使用的是最新的稳定版或者开发版本的 Ansible ,首先你需要看看 github.com/ansible

  • 共享模块 Nest Modules can export their components. It means that we can easily share component instance between them. The best way to share an instance between two or more modules is to create Shared Modu

  • alias syntax: alias file-path|directory-path; default: no context: location This directive assigns a path to be used for the indicated location. Note that it may look similar to the root directive, bu

  • 让我们创建一个名为的新模块,并在那里定义CounterService。 app/shared/shared.module.ts 现在我们将引入 SharedModule 到AppModule 和中。 app/lazy/lazy.module.ts 使用此配置,两个模块的组件都可以访问CounterService。 我们将以完全相同的方式在EagerComponent和LazyComponent中使

  • 19.2 核心与核心模块 谈完了整个开机的流程,您应该会知道,在整个开机的过程当中,是否能够成功的驱动我们主机的硬件配备, 是核心 (kernel) 的工作!而核心一般都是压缩文件,因此在使用核心之前,就得要将他解压缩后,才能载入内存当中。 另外,为了应付日新月异的硬件,目前的核心都是具有“可读取模块化驱动程序”的功能, 亦即是所谓的“ modules (模块化)”的功能啦!所谓的模块化可以将他想

  • Macaron 会注入一些默认服务来驱动您的应用,这些服务被称之为 核心服务。也就是说,您可以直接使用它们作为处理器参数而不需要任何附加工作。 请求上下文(Context) 该服务通过类型 *macaron.Context 来体现。这是 Macaron 最为核心的服务,您的任何操作都是基于它之上。该服务包含了您所需要的请求对象、响应流、模板引擎接口、数据存储和注入与获取其它服务。 使用方法: pa