Function 'fooController' is undefined
in javascript angularI spent about an hour pulling my hair over this one. I'm deploying an Angular to dev for the first time, it works fine locally, but everything is busted when I grunt build
and push it up to a server. I'm using ngMin and using the supposedly safe syntax for defining all my dependencies, but unfortunately any Google search that includes "grunt build" and/or "minify angular" only turns up answer that pertain to that fairly well know problem.
So, I commented out Uglify in the build process and am still getting the error, only it's a lot easier to track down now, because my JS isn't minified. It blows up on the first one of my controllers that I wrote in Coffeescript, and is wrapped by Coffee's default function wrapper.
If this sounds like you, go to your Gruntfile and add an option to the coffeescript config ---
coffee: {
options: {
sourceMap: true,
sourceRoot: ''
},
becomes this ---
coffee: {
options: {
sourceMap: true,
sourceRoot: '',
bare: true
},
Just make sure you're defining your scripts with (one of )the approved syntax(s) for keeping stuff out of the global scope -
angular.module('fooApp').controller('fooController', function(){
// stuff here
});