I tried to define my first directive in angular today. This is what it looks like:
app.js:
var frameApp = angular.module('frameApp', [
'ngRoute',
'frameServices',
'frameFilters',
'frameDirectives',
'frameControllers'
]);
console.log("1");
frameApp.directive('ngEnter', [function(){
console.log("2");
return {
link: function($scope, iElm, iAttrs, controller) {
console.log("3");
}
};
}]);
When I load the page I only see the "1" printed in the console.
it is used in the code like this:
<input
type="text"
placeholder="username"
ng-model="username"
ng-enter="createUser()">
my index.html looks like this:
<!DOCTYPE html>
<html ng-app="frameApp" ng-controller="PageCtrl">
<head>
<!-- lots of irrelevant scripts -->
<!-- config and initialization -->
<script type="text/javascript"
src="app/app.js">
</script>
<script type="text/javascript"
src="app/app.routes.js">
</script>
<title>{{ title }}</title>
</head>
<body>
<ng-include
src="'app/partials/header.html'"
onload="onHeaderLoaded()">
</ng-include>
<ng-include
src="'app/partials/loginbox.html'"
ng-if="loginVisible">
</ng-include>
<div id="content" ng-view></div>
</body>
</html>
I initially tried to get the directive from this question working: How to use a keypress event in AngularJS?
How do I find out why it doesn't work and fix it?
UPDATE
I found the problem, it was a second declaration of frameApp above my routes declaration. If you have a similar problem, check that you aren't overriding any modules because angular doesn't throw any errors if you do.