Vyhledávání na webu

typescript - Jak předat hodnotu direktivě v Angularu


Kód a vysvětlení aktualizovány

Chci, aby se tato direktiva zakázala nebo povolila na základě hodnoty boolean, ale ať už jakou hodnotu (true/false) pošlu přes proměnnou isDraggable, v obou případech je direktiva povolena.

Co zlepšit v tomto kódu?

@Directive({
  selector: '[movableObject]'
})
export class MovableDirective extends DraggableDirective {
  @Input() movableObject: boolean;
}

@Component({
  selector: 'app-panel',
  template: `<div [movableObject]="isDraggable"></div>`,
  styleUrls: ['./panel.component.scss'],
})
export class PanelComponent implements OnInit {
  private isDraggable: boolean = true;
}

Odpověď č. 1

Všimněte si dekorátoru @Input. Přidává metadat k třídě, která umožňuje vlastnosti movableObject direktivy být dostupná pro vazbu.

@Directive({
  selector: '[movableObject]'
})
export class MovableDirective extends DraggableDirective {
   @Input() movableObject: boolean;
}

@Component({
  selector: 'app-panel',
  template: `<div [movableObject]="isDraggable"></div>`,
  styleUrls: ['./panel.component.scss'],
})
export class PanelComponent implements OnInit {
  private isDraggable: boolean;
}