Ricerca…


@HostBinding

Il decoratore @HostBinding ci consente di impostare in modo programmatico un valore di proprietà sull'elemento host della direttiva. Funziona in modo simile a un vincolo di proprietà definito in un modello, tranne per il target specifico dell'elemento host. La rilegatura viene controllata per ogni ciclo di rilevamento delle modifiche, quindi può essere modificata dinamicamente, se lo si desidera. Ad esempio, diciamo che vogliamo creare una direttiva per i pulsanti che aggiunge dinamicamente una classe quando la premiamo. Potrebbe sembrare qualcosa di simile:

import { Directive, HostBinding, HostListener } from '@angular/core';

@Directive({
  selector: '[appButtonPress]'
})
export class ButtonPressDirective {
  @HostBinding('attr.role') role = 'button';
  @HostBinding('class.pressed') isPressed: boolean;

  @HostListener('mousedown') hasPressed() {
    this.isPressed = true;
  }
  @HostListener('mouseup') hasReleased() {
    this.isPressed = false;
  }
}

Si noti che per entrambi i casi di utilizzo di @HostBinding stiamo passando un valore stringa per quale proprietà vogliamo influenzare. Se non forniamo una stringa al decoratore, verrà utilizzato il nome del membro della classe. Nel primo @HostBinding, impostiamo staticamente l'attributo role al pulsante. Per il secondo esempio, la classe premuta verrà applicata quando isPressed è true



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow