How can I access the "content" of a component from within the component class itself?
I would like to do something like this:
<upper>my text to transform to upper case</upper>   How can I get the content or the upper tag within my component like I would use @Input for attributes?
@Component({     selector: 'upper',     template: `<ng-content></ng-content>` }) export class UpperComponent {     @Input      content: String; }   PS: I know I could use pipes for the upper case transformation, this is only an example, I don't want to create an upper component, just know how to access the component's content from with the component class.
Once you project content into App Component using ng-content. Now, using the template reference variable “#contentParagraph” you can access ng-content using @ContentChild within Angular component (ItemElementComponent) class as shown below.
Content projection is a pattern in which you insert, or project, the content you want to use inside another component. For example, you could have a Card component that accepts content provided by another component.
If you want to get a reference to a component of the transcluded content, you can use:
@Component({     selector: 'upper',     template: `<ng-content></ng-content>` }) export class UpperComponent {     @ContentChild(SomeComponent) content: SomeComponent; }     If you wrap <ng-content> then you can access access to the transcluded content like
@Component({     selector: 'upper',     template: `   <div #contentWrapper>     <ng-content></ng-content>   </div>` }) export class UpperComponent {     @ViewChild('contentWrapper') content: ElementRef;      ngAfterViewInit() {       console.debug(this.content.nativeElement);     } } 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With