#javascript #angular #typescript #parent-child
#javascript #angular #typescript #родительский-дочерний
Вопрос:
Я создал дочерний компонент в своем общем модуле для отображения предупреждающего сообщения. Но когда я ввел его в свой родительский компонент, я увидел тег в своей консоли, но не загрузочную карту внутри моего компонента.
alertmessage.component.ts :
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'alertmessage',
templateUrl: './alert-message.component.html',
styleUrls: ['./alert-message.component.scss']
})
export class AlertMessageComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}
alertmessage.component.html :
<div class="card" style="width: 18rem;">
<img src="..." class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">Card title</h5>
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
shared.module.ts :
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { NgxBootstrapModule } from './modules/ngx-bootstrap.module';
import { BeginsWithPipe } from './pipes/begins-with.pipe';
import { ShortUrlPipe } from './pipes/short-url.pipe';
import { AlertMessageComponent } from './components/alert-message/alert-message.component';
@NgModule({
declarations: [AlertMessageComponent],
imports: [
CommonModule,
NgxBootstrapModule,
TranslateModule
],
exports: [
CommonModule,
NgxBootstrapModule,
TranslateModule,
AlertMessageComponent
],
providers: []
})
export class SharedModule { }
Вот мой состав папки :
Core
Shared
Components
alert-message
.ts
.html
.css
Pipes
shared.module.ts
Public
Private
admin
admin
qr-code-management
.ts
.html
.css
create
.ts
.html
.css
update
.ts
.html
.css
upload-file
admin.module.ts
private.module.ts
admin.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { CKEditorModule } from '@ckeditor/ckeditor5-angular';
import { ZXingScannerModule } from '@zxing/ngx-scanner';
import { NgxKjuaModule } from 'ngx-kjua';
import { SharedModule } from 'src/app/shared/shared.module';
...
@NgModule({
declarations: [...],
imports: [
CommonModule,
SharedModule,
FormsModule, ReactiveFormsModule,
CKEditorModule,
ZXingScannerModule,
NgxKjuaModule
],
exports: [
FormsModule, ReactiveFormsModule,
CKEditorModule,
ZXingScannerModule,
NgxKjuaModule
]
})
export class AdminModule { }
private.module.ts
import { NgModule } from '@angular/core';
import { PrivateRoutingModule } from './private-routing.module';
import { SharedModule } from '../shared/shared.module';
import { AdminModule } from './admin/admin.module';
@NgModule({
declarations: [],
imports: [
SharedModule,
PrivateRoutingModule,
AdminModule
]
})
export class PrivateModule { }
И, например, в моем update.component.html
<h1 class="card-header blue">QR CODE MANAGEMENT - UPDATE</h1>
<alertmessage></alertmessage>
Затем я получаю это в своей консоли, где мы можем видеть тег в компоненте, но ничего внутри..
Комментарии:
1. Не могли бы вы показать, где вы использовали этот компонент alertMsg. Я имею в виду, где вы импортировали общий модуль и где находится родительский компонент?
2. Да, я отредактировал свой пост
3. Вам нужно воссоздать это в stack blitz. Здесь явно нет ничего неправильного. Вероятно, где-то отсутствует импорт.
Ответ №1:
проверьте ваше фактическое имя файла и то, которое вы использовали в URL-адресе шаблона, я думаю, они разные. фактическое имя файла и имя в URL-адресе шаблона должны совпадать