У меня есть следующий код:
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
тоже недоступен
Примечание. Возможно, это повторяющийся вопрос, но я не нашел прямого объяснения этой проблемы, а также решения