diff --git a/example/toderp2/controllers.js b/example/toderp2/controllers.js
new file mode 100644
index 0000000000..e89ba89d8d
--- /dev/null
+++ b/example/toderp2/controllers.js
@@ -0,0 +1,69 @@
+angular.module('ionic.todo.controllers', ['ionic.todo', 'firebase'])
+
+// The main controller for the application
+.controller('TodoCtrl', function($scope, $rootScope, AuthService) {
+ $rootScope.$on('angularFireAuth:login', function(evt, user) {
+ $scope.display.screen = 'tasks';
+ });
+ $rootScope.$on('angularFireAuth:logout', function(evt, user) {
+ console.log('Logged out!', evt, user);
+ $scope.display.screen = 'login';
+ });
+ $rootScope.$on('angularFireAuth:error', function(evt, err) {
+ console.log('Login Error!', evt, err);
+ });
+
+ $scope.setScreen = function(screen) {
+ $scope.display.screen = screen;
+ };
+})
+
+// The login form controller
+.controller('LoginCtrl', function($scope, AuthService) {
+ console.log('Created login Ctrl');
+
+ $scope.loginForm = {
+ email: 'max@drifty.com',
+ password: 'test'
+ };
+
+ $scope.tryLogin = function(data) {
+ $scope.loginError = false;
+ AuthService.login(data.email, data.password)
+ .then(function(e) {
+ $scope.loginError = false;
+ }, function(e) {
+ $scope.loginError = true;
+ });
+ };
+
+ $scope.showSignup = function() {
+ };
+})
+
+// The signup form controller
+.controller('SignupCtrl', function($scope, AuthService) {
+ $scope.signupForm = {};
+
+ $scope.trySignup = function(data) {
+ AuthService.signup(data.email, data.password);
+ };
+})
+
+// The tasks controller (main app controller)
+.controller('TasksCtrl', function($scope, angularFire, FIREBASE_URL) {
+ var taskRef = new Firebase(FIREBASE_URL + '/todos');
+ $scope.todos = [];
+ angularFire(taskRef, $scope, 'todos');
+ $scope.addTask = function(task) {
+ var t = {};
+ t = angular.extend({
+ id: $scope.user.id
+ }, task);
+
+ console.log("Adding task:", t);
+ $scope.todos.push(t);
+
+ $scope.task = {};
+ };
+});
diff --git a/example/toderp2/index.html b/example/toderp2/index.html
new file mode 100644
index 0000000000..571bca8375
--- /dev/null
+++ b/example/toderp2/index.html
@@ -0,0 +1,75 @@
+
+
+
+ ToDerp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/example/toderp2/js/app.js b/example/toderp2/js/app.js
new file mode 100644
index 0000000000..1740b47a93
--- /dev/null
+++ b/example/toderp2/js/app.js
@@ -0,0 +1,4 @@
+angular.module('ionic.todo', ['ionic.todo.services', 'ionic.todo.controllers', 'firebase', 'ngRoute', 'ngAnimate'])
+
+// Our Firebase URL
+.constant('FIREBASE_URL', 'https://ionic-todo-demo.firebaseio.com/');
diff --git a/example/toderp2/js/controllers.js b/example/toderp2/js/controllers.js
new file mode 100644
index 0000000000..eed3f0c637
--- /dev/null
+++ b/example/toderp2/js/controllers.js
@@ -0,0 +1,73 @@
+angular.module('ionic.todo.controllers', ['ionic.todo', 'firebase'])
+
+// The main controller for the application
+.controller('TodoCtrl', function($scope, $rootScope, AuthService) {
+ $scope.display = {
+ screen: 'splash'
+ };
+ $rootScope.$on('angularFireAuth:login', function(evt, user) {
+ $scope.display.screen = 'tasks';
+ });
+ $rootScope.$on('angularFireAuth:logout', function(evt, user) {
+ console.log('Logged out!', evt, user);
+ $scope.display.screen = 'login';
+ });
+ $rootScope.$on('angularFireAuth:error', function(evt, err) {
+ console.log('Login Error!', evt, err);
+ });
+
+ $scope.setScreen = function(screen) {
+ $scope.display.screen = screen;
+ };
+})
+
+// The login form controller
+.controller('LoginCtrl', function($scope, AuthService) {
+ console.log('Created login Ctrl');
+
+ $scope.loginForm = {
+ email: 'max@drifty.com',
+ password: 'test'
+ };
+
+ $scope.tryLogin = function(data) {
+ $scope.loginError = false;
+ AuthService.login(data.email, data.password)
+ .then(function(e) {
+ $scope.loginError = false;
+ }, function(e) {
+ $scope.loginError = true;
+ });
+ };
+
+ $scope.showSignup = function() {
+ $scope.setScreen('signup');
+ };
+})
+
+// The signup form controller
+.controller('SignupCtrl', function($scope, AuthService) {
+ $scope.signupForm = {};
+
+ $scope.trySignup = function(data) {
+ AuthService.signup(data.email, data.password);
+ };
+})
+
+// The tasks controller (main app controller)
+.controller('TasksCtrl', function($scope, angularFire, FIREBASE_URL) {
+ var taskRef = new Firebase(FIREBASE_URL + '/todos');
+ $scope.todos = [];
+ angularFire(taskRef, $scope, 'todos');
+ $scope.addTask = function(task) {
+ var t = {};
+ t = angular.extend({
+ id: $scope.user.id
+ }, task);
+
+ console.log("Adding task:", t);
+ $scope.todos.push(t);
+
+ $scope.task = {};
+ };
+});
diff --git a/example/toderp2/js/services.js b/example/toderp2/js/services.js
new file mode 100644
index 0000000000..5bd27fb9ac
--- /dev/null
+++ b/example/toderp2/js/services.js
@@ -0,0 +1,46 @@
+angular.module('ionic.todo.services', ['ionic.todo', 'firebase'])
+
+// The AuthService handles user authentication with Firebase.
+.factory('AuthService', function(angularFireAuth, $rootScope, FIREBASE_URL) {
+
+ // Initialize the angularFireAuth service.
+ var ref = new Firebase(FIREBASE_URL);
+ angularFireAuth.initialize(ref, {
+ scope: $rootScope,
+ callback: function(user, err) {
+ console.log('AUTH CHANGED', err, user);
+ },
+ name: 'user'
+ });
+
+ return {
+
+ // Try to log in with the given email and pass
+ login: function(email, password) {
+ if(!email || !password) {
+ return;
+ }
+ console.log('Logging in', email, password);
+
+ return angularFireAuth.login('password', {
+ email: email,
+ password: password
+ });
+ },
+
+ // Try to sign up with the given email and pass
+ signup: function(email, password) {
+ if(!email || !password) {
+ return;
+ }
+ console.log('Signing up', name, email, password);
+
+ angularFireAuth.createUser(email, password, function(err, user) {
+ if(err && err.code == "EMAIL_TAKEN") {
+ alert('That email is already taken');
+ }
+ });
+ }
+ };
+})
+
diff --git a/js/ext/angular/src/directive/ionicNav.js b/js/ext/angular/src/directive/ionicNav.js
index 764386f0f8..9af61eb468 100644
--- a/js/ext/angular/src/directive/ionicNav.js
+++ b/js/ext/angular/src/directive/ionicNav.js
@@ -32,7 +32,7 @@ angular.module('ionic.ui.nav', [])
$scope.navController = this;
})
-.directive('navController', function() {
+.directive('navCtrl', function() {
return {
restrict: 'E',
replace: true,