2016-09-30 1 views

Répondre

2

Angular2 comprend [(ngModel)] = myName comme property + event de liaison et comme une version affaissée de,

  1. [ngModel] = 'myName' et
  2. (ngModelChange) = 'updateMyNameValue(myName)'

Leur politique unidirectional data flow pourrait tout aussi bien que prendre la version élargie de celui-ci tels que la définition de la variable de portée explicitement par l'événement inputs lorsque la valeur est modifiée et vice-versa, de sorte que ce syntact ic version sucre il pourrait ressembler presque comme

myName = ''; 
function updateMyNameValue(elem) { 
    // find scope variable of `myName` and update it 
    // find element in view and update it 
} 
// <input type="text" onchange="updateMyNameValue(this)" value="" /> 

Selon le docs,

[(ngModel)] est un exemple spécifique d'un modèle plus général dans lequel angulaire « de sucres » la syntaxe [(x)] dans une propriété d'entrée x pour la liaison de propriété et une propriété de sortie xChange pour la liaison d'événements. Angular construit l'instruction de modèle de liaison de la propriété d'événement par en ajoutant =$event à la chaîne littérale de l'expression de modèle.

[(x)]="e" <==> [x]="e" (xChange)="e=$event" 
+0

Ainsi, où le gestionnaire d'événements est-il implémenté? à l'intérieur du composant? – Shivanka

+0

@Shivanka Non, ils ont leur propre manière pour chaque contrôle de formulaire, comme «entrées, sélections, sélections multiples, etc.» pour implémenter le gestionnaire d'événements dans leurs directives. – choz

+0

dans une situation où je veux remplacer le gestionnaire d'événements dans la liaison de données bidirectionnelle, comment puis-je implémenter une telle fonctionnalité. – Shivanka