J'essaie de comprendre pourquoi ce code ne fonctionne pas dans Angular
HTML STRY>: P> Uncaught ReferenceError: myFunction is not defined
at HTMLButtonElement.onclick (create:1)
onclick @ create:1
5 Réponses :
CLI angulaire construit votre code avec WebPack sous la hotte. Chaque fichier TS est transformé par TypeScript sur JS et tous les codes de ce fichier JS ont une portée séparée.
Donc votre De toute façon, vous pouvez essayer de définir cette fonction en tant que propriété de fenêtre manuellement et cela devrait fonctionner: P> MyFunction code> n'est pas disponible à l'échelle mondiale. Il n'est pas créé comme fenêtre.myfunction code> Propriété. P> window['myFunction'] = function myFunction(hello: string) {
console.log(hello);
}
par docs angulaires p>
Lorsque vous écrivez une liaison, soyez conscient d'un contexte d'exécution de l'instruction de modèle. Les identificateurs d'une instruction de modèle appartiennent à un objet contextuel spécifique, généralement le composant angulaire contrôlant le modèle P> blockQuote>
par Documents Web MDN P>
La propriété OnClick de GloballeventHandlers Mixin est l'EventHandler pour le traitement des événements sur un élément donné. P> blockQuote>
Conclusion => Cela revient à l'encapsulation ou à la portée. Lorsque OnClick est utilisé, le navigateur tente de trouver la mycée () dans le contexte global où il n'existe pas car il est enregistré dans la portée des composants. Ainsi, le javascript pur est autorisé en angulaire. Angular essaie juste de "aider" dans ce cas. p>
Oui, tout comme n'importe quel autre événement.
<button (click)=âhandleClick($event)â type=âbuttonâ>Button</button>
handleClick(event: Event) {
console.log(âClick!â, event)
}
Vous devez définir la mycée dans la classe CreateComponent car lorsque vous cliquez, la fonction de connexion à l'événement serait recherchée dans la classe des composants au lieu de tout le fichier TS. P>
S'il vous plaît utiliser comme celui-ci;
Important strong>: Veuillez noter que, vous pouvez écrire ça JavaScript dans un projet dossier sans aucun problème car JavaScript est un sous-ensemble de documentscript, vous n'avez besoin que d'étapes si vous envisagez d'utiliser une bibliothèque JavaScript externe avec dossier. P> Lisez ceci: