0
votes

Onclick Tag Bouton ne fonctionne pas en angulaire

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


0 commentaires

5 Réponses :


2
votes

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 MyFunction code> n'est pas disponible à l'échelle mondiale. Il n'est pas créé comme fenêtre.myfunction code> Propriété. P>

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>

window['myFunction'] = function myFunction(hello: string) {
  console.log(hello);
}


0 commentaires

2
votes

par docs angulaires

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

par Documents Web MDN

La propriété OnClick de GloballeventHandlers Mixin est l'EventHandler pour le traitement des événements sur un élément donné.

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.


0 commentaires

3
votes

Oui, tout comme n'importe quel autre événement.

<button (click)=”handleClick($event)” type=”button”>Button</button>

handleClick(event: Event) {
  console.log(‘Click!’, event)
}


0 commentaires

1
votes

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.


0 commentaires

1
votes

S'il vous plaît utiliser comme celui-ci;

HTML xxx

dactylographie - Créditecomponent < p> note : Définissez la myfunction à l'intérieur de la classe CreateComponent xxx

Important : 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.

Lisez ceci: https://www.techiediaries.com/use-external-javascript-libres-typescript-Projects /


0 commentaires