Maison >interface Web >js tutoriel >Pourquoi mon contrôleur AngularJS n'est-il pas défini et comment puis-je l'enregistrer correctement ?

Pourquoi mon contrôleur AngularJS n'est-il pas défini et comment puis-je l'enregistrer correctement ?

DDD
DDDoriginal
2024-12-16 06:07:15745parcourir

Why is my AngularJS Controller undefined, and how can I register it correctly?

Erreur dans AngularJS : enregistrement du contrôleur

Question :

Lors de la tentative de définition globale des contrôleurs dans une application AngularJS, l'erreur "Le contrôleur n'est pas une fonction, n'est pas défini" se produit.

Réponse :

Depuis AngularJS 1.3, la déclaration globale du contrôleur n'est plus prise en charge. Les contrôleurs doivent maintenant être enregistrés à l'aide de la syntaxe module.controller.

Méthodes d'enregistrement :

  1. Utilisation de la méthode .controller() :
angular.module('app', []).controller('ContactController', ['$scope', function($scope) {
  // Controller logic
}]);
  1. Utiliser la dépendance Injection :
function ContactController($scope) {
  // Controller logic
}
ContactController.$inject = ['$scope'];
angular.module('app', []).controller('ContactController', ContactController);

Alternative : Autoriser les globaux

L'utilisation de contrôleurs globaux peut être réactivée en définissant allowGlobals dans $controllerProvider :

angular.module('app').config(['$controllerProvider', function($controllerProvider) {
  $controllerProvider.allowGlobals();
}]);

Supplémentaire Considérations :

  • Assurez-vous que la directive ng-app est incluse dans l'élément racine de l'application.
  • Vérifiez que le fichier correct est inclus dans les scripts.
  • Évitez de définir le même module plusieurs fois, car cela peut remplacer les entités précédemment enregistrées.

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