0

I have two components header-navbar.component.ts and message-menu.component.ts I want to include message-menu component html into header-navbar component i.e I want to make it a child component.

I have added message menu component in declarations of app.modules.ts, exports and imports. Imported message menu component in header navbar component. But still I get error:

Uncaught Error: Template parse errors: 'app-message-menu' is not a known element: 1. If 'app-message-menu' is an Angular component, then verify that it is part of this module. 2. If 'app-message-menu' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message

header-navbar.component.ts

import { Component, ViewChild, OnInit, Input, EventEmitter, ViewEncapsulation, OnDestroy, ElementRef, HostListener } from '@angular/core';
import { Router } from '@angular/router';

import { MessageMenuComponent } from '../message-menu/message-menu.component'
declare var jQuery: any;
import {
  OnboardingServiceV2
} from '../../../services/system/onboardingv2/onboarding.service.v2';
@Component({
  selector: 'header-navbar',
  templateUrl: './header-navbar.component.html',
  styleUrls: ['./header-navbar.component.css'],
  host: {'(document:click)': 'onClick($event)'},
  outputs:['onOpenSign'],
  // encapsulation: ViewEncapsulation.None,
  providers: [CollaborationProvider, MessageMenuComponent],
})
export class HeaderNavbarComponent implements OnInit, OnDestroy {

app.module.ts

import { MessageMenuComponent } from './widget-library/rich-elements/message-menu/message-menu.component';

@NgModule({
  declarations: [...
    MessageMenuComponent

 ],
 exports: [
  MessageMenuComponent
  ],

 bootstrap: [AppComponent]
})
export class myModule { }

header-navbar.component.html

   <app-message-menu></app-message-menu>

message-menu.component.ts

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-message-menu',
  templateUrl: './message-menu.component.html',
  styleUrls: ['./message-menu.component.css']
})
export class MessageMenuComponent implements OnInit {

  constructor() { }

  ngOnInit() {
  }

}

message-menu.component.html

<p>
  message-menu works!
</p>

I have referred several questions on stackoverflow and follow all steps to use one component in another but it did not work.

I referred this SO question for help.

Please let me know if more info required.

Always_a_learner
  • 4,585
  • 13
  • 63
  • 112

1 Answers1

0

You do not need to export components since you are not using a shared module. Also add the necessary providers and HeaderNavbarComponent under declarations and providers inside app.module.ts

@NgModule({
  declarations: [ 
    HeaderNavbarComponent 
    MessageMenuComponent

 ],
 exports: [  
  ],

 bootstrap: [AppComponent]
})
export class myModule { }
Sajeetharan
  • 216,225
  • 63
  • 350
  • 396