function TypeRacerCtrl($scope) {
    this.selectedLevelName;
    this.selectedLevelSpeed;
    this.playerName;
    
    this.$onInit = function() {
        this.levels = [
            {
                levelName: 'Beginner',
                charsPerSecond: 3
            },
            {
                levelName: 'Intermediate',
                charsPerSecond: 7
            },
            {
                levelName: 'Expert',
                charsPerSecond: 9
            }
        ];
        this.shouldShowRacingPage = false;
    };
    
    $scope.$watch(
            (function() {return this.selectedLevelName;}).bind(this),
            (function(newVal, oldVal) {
                if (newVal !== oldVal) {
                    for (var index=0; index<this.levels.length; index++) {
                        for (var key in this.levels[index]) {
                            if (this.levels[index].hasOwnProperty(key)
                                    && key==='levelName'
                                    && this.levels[index][key] 
                                    === this.selectedLevelName) {
                                this.selectedLevelSpeed =
                                        this.levels[index]['charsPerSecond'];
                            }
                        }
                    }
                }
            }).bind(this));
}


/*
 * Whether to show the racing page.
 * 
 * @param {boolean} isSubmitted
 */
TypeRacerCtrl.prototype.showRacingPage = function(isSubmitted) {
    this.shouldShowRacingPage = isSubmitted;
};

angular
        .module('typeRacer')
        .controller('TypeRacerCtrl', ['$scope', TypeRacerCtrl]);
@@ -30,36 +30,8 @@
 ) %7B%0A
-    this.selectedLevelName;%0A
     
@@ -55,16 +55,16 @@
 lSpeed;%0A
+
     this
@@ -509,838 +509,8 @@
  %7D;%0A
-    %0A    $scope.$watch(%0A            (function() %7Breturn this.selectedLevelName;%7D).bind(this),%0A            (function(newVal, oldVal) %7B%0A                if (newVal !== oldVal) %7B%0A                    for (var index=0; index%3Cthis.levels.length; index++) %7B%0A                        for (var key in this.levels%5Bindex%5D) %7B%0A                            if (this.levels%5Bindex%5D.hasOwnProperty(key)%0A                                    && key==='levelName'%0A                                    && this.levels%5Bindex%5D%5Bkey%5D %0A                                    === this.selectedLevelName) %7B%0A                                this.selectedLevelSpeed =%0A                                        this.levels%5Bindex%5D%5B'charsPerSecond'%5D;%0A                            %7D%0A                        %7D%0A                    %7D%0A                %7D%0A            %7D).bind(this));%0A
 %7D%0A%0A%0A
@@ -739,16 +739,16 @@
 Racer')%0A
-
         
@@ -803,8 +803,9 @@
 rCtrl%5D);
+%0A

Remove unnecessary watcher.