AngularJs: Uncaught ReferenceError: $scope не определен в режиме отладчика

У меня есть следующий код:

HTML

<div ng-controller="MyCtrl">
   {{message}}!
    <button ng-click="changeMessage()">change Message</button>
</div>

AngularJs

var myApp = angular.module('myApp',[]);

function MyCtrl($scope, $http) {
    $scope.message = 'Hello $scope';
    $scope.newMessage = 'Hello World';
    $scope.changeMessage = function(){
        $scope.message = $scope.newMessage;//debugger;
    }
}

В этом сценарии проблем нет. Но если вы измените эту строку:

$scope.message = $scope.newMessage;

с:

debugger;

затем нажмите кнопку, пока консоль открыта, и напишите $scope, вы получите эту ошибку:

Uncaught ReferenceError: $scope is not defined

Итак, мои вопросы:

  • Почему $scope доступен, когда вы используете $scope внутри функции, и недоступен в режиме отладки (когда вы не используете $scope где-то в функции)
  • Как работать с $http в этих обстоятельствах, потому что $http тоже недоступен

Jsfiddle

Примечание. Возможно, это повторяющийся вопрос, но я не нашел прямого объяснения этой проблемы, а также решения


person ToTa    schedule 23.10.2015    source источник