Maison >interface Web >js tutoriel >Pourquoi mon contrôleur angulaire n'est-il pas défini et comment puis-je y remédier ?

Pourquoi mon contrôleur angulaire n'est-il pas défini et comment puis-je y remédier ?

DDD
DDDoriginal
2024-12-04 01:31:10564parcourir

Why is my Angular Controller Undefined, and How Do I Fix It?

Définition globale des contrôleurs dans Angular : erreur et solutions

Erreur rencontrée :
Les applications angulaires rencontrent parfois un erreur indiquant qu'un contrôleur n'est pas reconnu comme une fonction, ce qui entraîne un statut indéfini. Cette erreur peut apparaître lors de la définition du contrôleur au niveau global.

Solution :
À partir d'Angular 1.3, la déclaration globale du contrôleur est obsolète. Les contrôleurs doivent maintenant être enregistrés à l'aide de la syntaxe 'module.controller'.

Méthode traditionnelle (obsolète) :

function ContactController($scope) {
  // Controller logic
}

Méthode révisée (Angular 1.3) :

Option 1 :

// Register the controller
angular.module('app').controller('ContactController', ['$scope', function ContactController($scope) {
  // Controller logic
}]);

Option 2 :

// Define the controller as a function
function ContactController($scope) {
  // Controller logic
}
// Register the controller with its dependency injection
ContactController.$inject = ['$scope'];
angular.module('app').controller('ContactController', ContactController);

Considérations supplémentaires :

  • Assurez-vous d'avoir spécifié le nom de l'application dans la directive ng-app sur l'élément HTML racine (par exemple, ng-app="myApp").
  • Vérifiez que les scripts corrects sont inclus dans l'application.
  • Évitez de définir le même module plus d'une fois, car il peut écraser les contrôleurs précédemment enregistrés et provoquer l'erreur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn