这是一个小插图.当有一个ng-click指令(例如)调用未在控制器的$ scope(或其父节点)上定义的函数时,它会无声地失败.当我尝试调试网页时,这种行为令人抓狂,因为错误输入的函数名称可能意味着浪费了很多时间.我怎样才能找出这样的错误被误吞的原因,为什么答案"你做不到?"
<div ng-app="AngularApp">
<div ng-controller="FooController">
<button ng-click="noError()"> noError() </button>
<button ng-click="error()"> error() </button>
<button ng-click="works()"> works() </button>
<br/>
<p ng-bind="foo"></p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
var angularApp = angular.module('AngularApp', []);
angularApp.controller('FooController', ['$scope', function($scope) {
$scope.foo = 0;
$scope.works = function () {
$scope.foo += 1; // no error, everything works
};
$scope.error = function () {
$scope.foo += baz; // ReferenceError: baz is not defined
};
// noError is not defined in the controller, so errors suddenly don't …Run Code Online (Sandbox Code Playgroud)