I have my custom component:
@Component({     selector: 'my-custom-component',     templateUrl: './my-custom-component.html',     styleUrls: ['./my-custom-component.css'] }) export class MyCustomComponent {     constructor() {         console.log('myCustomComponent');     } }   I can use it like this:
<my-custom-component></my-custom-component>   But how I can pass a variable? For example:
<my-custom-component custom-title="My Title"></my-custom-component>   And use this in my component code?
There are two ways to pass data into a component, with 'property binding' and 'event binding'. In Angular, data and event change detection happens top-down from parent to children. However for Angular events we can use the DOM event mental model where events flow bottom-up from child to parent.
Note that when using the [] notation in an Angular template, Angular will expect an expression to be passed. To pass a string directly, as we're doing here, we wrap them in single-quotes. In addition to passing the URL of the image as a prop, we've also been passing a class name.
You need to add Input property to your component and then use property binding to pass value to it:
import { Component, Input } from '@angular/core';  @Component({     selector: 'my-custom-component',     templateUrl: './my-custom-component.html',     styleUrls: ['./my-custom-component.css'] }) export class MyCustomComponent {      @Input()     customTitle: string;      constructor() {         console.log('myCustomComponent');     }      ngOnInit() {         console.log(this.customTitle);     } }   And in your template:
<my-custom-component [customTitle]="yourVariable"></my-custom-component>   For more info, check out this page.
You can add an @Input() decorator to a property on your component. 
export class MyCustomComponent {     constructor() {         console.log('myCustomComponent');     }      @Input() title: string; }   <my-custom-component title="My Title"></my-custom-component>   or binding title from a variable 'theTitle'
<my-custom-component [title]="theTitle"></my-custom-component>   See the @Input()decorator documentation.
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