Help Angular by taking a 1 minute survey!Go to surveyHome

Input

Decorator that marks a class field as an input property and supplies configuration metadata. The input property is bound to a DOM property in the template. During change detection, Angular automatically updates the data property with the DOM property's value.

OptionDescription
bindingPropertyName

The name of the DOM property to which the input property is bound.

Options

The name of the DOM property to which the input property is bound.

bindingPropertyName: string
      
      bindingPropertyName: string
    

Usage notes

You can supply an optional name to use in templates when the component is instantiated, that maps to the name of the bound property. By default, the original name of the bound property is used for input binding.

The following example creates a component with two input properties, one of which is given a special binding name.

@Component({ selector: 'bank-account', template: ` Bank Name: {{bankName}} Account Id: {{id}} ` }) class BankAccount { // This property is bound using its original name. @Input() bankName: string; // this property value is bound to a different property name // when this component is instantiated in a template. @Input('account-id') id: string; // this property is not bound, and is not automatically updated by Angular normalizedBankName: string; } @Component({ selector: 'app', template: ` <bank-account bankName="RBC" account-id="4747"></bank-account> ` }) class App {}
      
      
  1. @Component({
  2. selector: 'bank-account',
  3. template: `
  4. Bank Name: {{bankName}}
  5. Account Id: {{id}}
  6. `
  7. })
  8. class BankAccount {
  9. // This property is bound using its original name.
  10. @Input() bankName: string;
  11. // this property value is bound to a different property name
  12. // when this component is instantiated in a template.
  13. @Input('account-id') id: string;
  14.  
  15. // this property is not bound, and is not automatically updated by Angular
  16. normalizedBankName: string;
  17. }
  18.  
  19. @Component({
  20. selector: 'app',
  21. template: `
  22. <bank-account bankName="RBC" account-id="4747"></bank-account>
  23. `
  24. })
  25. class App {}