Angular 角度5-指;确认它是本模块的一部分;消息
将我的组件从Angular 角度5-指;确认它是本模块的一部分;消息,angular,angular-ui-router,Angular,Angular Ui Router,将我的组件从app.component.html更改为另一个other component.html app.component.html(这很有效) 这是我的app.module.ts,它加载core.module(顺便说一句,我的组件在core.module里面) 应用程序模块 import { BrowserModule } from '@angular/platform-browser'; import { NgModule, NO_ERRORS_SCHEMA } from '@angu
app.component.html
更改为另一个other component.html
app.component.html(这很有效)
这是我的app.module.ts
,它加载core.module
(顺便说一句,我的组件在core.module里面)
应用程序模块
import { BrowserModule } from '@angular/platform-browser';
import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
import { provideRoutes} from '@angular/router';
import { AppComponent } from './app.component';
import { CoreModule } from './core/core.module';
import { AppRoutingModule } from './app-routing.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
CoreModule,
AppRoutingModule
],
providers: [],
bootstrap: [AppComponent],
schemas: [
NO_ERRORS_SCHEMA
]
})
export class AppModule { }
import { NgModule, NO_ERRORS_SCHEMA, Optional, SkipSelf } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { CommonModule, DatePipe } from "@angular/common";
import { MyComponent} from './components/my-component/my-component.component';
@NgModule({
declarations: [
MyComponent
],
imports: [
HttpClientModule,
CommonModule
],
exports: [
MyComponent
],
providers: [
DatePipe
],
schemas: [
NO_ERRORS_SCHEMA
]
})
export class CoreModule {
constructor (@Optional() @SkipSelf() parentModule: CoreModule) {
if (parentModule) {
throw new Error(
'CoreModule is already loaded. Import it in the AppModule only');
}
}
}
核心模块
import { BrowserModule } from '@angular/platform-browser';
import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
import { provideRoutes} from '@angular/router';
import { AppComponent } from './app.component';
import { CoreModule } from './core/core.module';
import { AppRoutingModule } from './app-routing.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
CoreModule,
AppRoutingModule
],
providers: [],
bootstrap: [AppComponent],
schemas: [
NO_ERRORS_SCHEMA
]
})
export class AppModule { }
import { NgModule, NO_ERRORS_SCHEMA, Optional, SkipSelf } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { CommonModule, DatePipe } from "@angular/common";
import { MyComponent} from './components/my-component/my-component.component';
@NgModule({
declarations: [
MyComponent
],
imports: [
HttpClientModule,
CommonModule
],
exports: [
MyComponent
],
providers: [
DatePipe
],
schemas: [
NO_ERRORS_SCHEMA
]
})
export class CoreModule {
constructor (@Optional() @SkipSelf() parentModule: CoreModule) {
if (parentModule) {
throw new Error(
'CoreModule is already loaded. Import it in the AppModule only');
}
}
}
因此,当y转到url localhost:4200/第一个组件时,应用程序启动,它加载主app.module,加载核心模块,最后一个加载我的组件。但似乎只有当我将组件放在app.component.html上时,它才起作用
有人能在这方面给我一些帮助吗?假设“其他”组件在“第一”模块中,那么既然它使用MyComponent,那么MyComponent也应该在“第一”模块中声明。您的CoreModule可能不包含组件。只有单例服务。如果在模块中声明的任何组件中使用“我的组件”,而该组件不导入声明和导出“我的组件”的模块,则fail@JBNizet“其他”组件位于“核心”模块上,因为“app.module”加载“核心”模块,所以与之关联的组件应加载到。它正在工作,但仅在app.component.html的上下文中有效,而在其他上下文中无效。@Jota.Toledo“core.module”是声明并导出“我的组件”的模块。我已经在app.module上导入了core.module,所以已经完成了。如果我在“第一个模块”上导入“核心模块”,控制台会打印:“错误:CoreModule已加载。仅在AppModule中导入它”是的,这是因为您在核心模块中施加的限制,该限制只能导入一次(通常由AppModule导入)。跨多个模块使用的组件在核心模块中声明/导出,这一事实在您方面是一个错误的设计决策
import { BrowserModule } from '@angular/platform-browser';
import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
import { provideRoutes} from '@angular/router';
import { AppComponent } from './app.component';
import { CoreModule } from './core/core.module';
import { AppRoutingModule } from './app-routing.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
CoreModule,
AppRoutingModule
],
providers: [],
bootstrap: [AppComponent],
schemas: [
NO_ERRORS_SCHEMA
]
})
export class AppModule { }
import { NgModule, NO_ERRORS_SCHEMA, Optional, SkipSelf } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { CommonModule, DatePipe } from "@angular/common";
import { MyComponent} from './components/my-component/my-component.component';
@NgModule({
declarations: [
MyComponent
],
imports: [
HttpClientModule,
CommonModule
],
exports: [
MyComponent
],
providers: [
DatePipe
],
schemas: [
NO_ERRORS_SCHEMA
]
})
export class CoreModule {
constructor (@Optional() @SkipSelf() parentModule: CoreModule) {
if (parentModule) {
throw new Error(
'CoreModule is already loaded. Import it in the AppModule only');
}
}
}