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