J'ai le code suivant;
var app =
angular.
module("myApp",[]).
config(function($routeProvider, $locationProvider) {
$routeProvider.when('/someplace', {
templateUrl: 'sometemplate.html',
controller: SomeControl
});
// configure html5 to get links working on jsfiddle
$locationProvider.html5Mode(true);
});
app.controller('SomeControl', ...);
J'obtiens l'erreur suivante
Uncaught ReferenceError: SomeControl is not defined from myApp
Le problème vient-il du fait que je ne peux pas utiliser la syntaxe app.controller ('SomeControl', ...)? lors de l'utilisation de $ routeProvider? est la seule syntaxe de travail:
function SomeControl(...)
Utilisez des guillemets:
controller: 'SomeControl'
Comme l'a dit Foo L, vous devez mettre des guillemets autour de SomeControl
. Si vous n'utilisez pas de guillemets, vous faites référence à la variable SomeControl
, qui n'est pas définie car vous n'avez pas utilisé de fonction nommée pour représenter le contrôleur.
Lorsque vous utilisez l'alternative que vous avez mentionnée, function SomeControl(...)
, vous définissez cette fonction nommée. Sinon, Angular doit savoir qu'il doit rechercher le contrôleur dans le module myApp
.
Il est préférable d'utiliser la syntaxe app.controller('SomeControl', ...)
car elle ne pollue pas l'espace de noms global.
Les réponses ci-dessus sont correctes cependant, cette erreur peut également se produire:
<div ng-controller="yourControllerName as vm">
angular.module('smart.admin.vip') .controller('yourController', yourController); function yourController($scope, gridSelections, gridCreationService, adminVipService) { var vm = this; activate();