Maison >interface Web >js tutoriel >Pourquoi mon contrôleur AngularJS n'est-il pas une fonction et comment puis-je y remédier ?
Le contrôleur n'est pas une erreur de fonction dans AngularJS : guide complet pour résoudre le problème
Lorsque vous travaillez avec AngularJS, vous pouvez rencontrer une erreur indiquant que un contrôleur n'est pas une fonction. Cette erreur se produit généralement lors de la tentative de définition globale des contrôleurs, ce qui n'est plus autorisé dans AngularJS 1.3. Pour résoudre ce problème, vous devez enregistrer les contrôleurs explicitement en utilisant la syntaxe module.controller.
Solution 1 : Enregistrer les contrôleurs à l'aide de la syntaxe module.controller
Pour définir un contrôleur en utilisant la syntaxe module.controller, suivez ces étapes :
angular.module('app', []) .controller('ContactController', ['$scope', function ContactController($scope) { // Controller logic here }]);
Solution 2 : Utiliser l'annotation $inject et AngularJS 1.3.5
Pour les versions AngularJS 1.3.5 et ultérieures, vous pouvez utiliser l'annotation $inject pour définir les dépendances de votre contrôleur. Cette annotation doit être placée en haut de la fonction de votre contrôleur.
function ContactController($scope) { $scope.contacts = ["[email protected]", "[email protected]"]; $scope.add = function() { $scope.contacts.push($scope.newcontact); $scope.newcontact = ""; }; } ContactController.$inject = ['$scope']; angular.module('app', []).controller('ContactController', ContactController);
Réactiver les contrôleurs globaux (facultatif)
AngularJS 1.3 applique une portée stricte, ce qui interdit déclaration globale du contrôleur. Cependant, vous pouvez réactiver les contrôleurs globaux en utilisant l'option allowGlobals dans la configuration de votre module :
angular.module('app') .config(['$controllerProvider', function($controllerProvider) { $controllerProvider.allowGlobals(); }]);
Considérations supplémentaires :
En suivant ces solutions, vous réussirez à résoudre l'erreur « Le contrôleur n'est pas une fonction » dans AngularJS et définissez efficacement les contrôleurs.
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!