我是Angular JS的新手。我首先要问一下如何理解Angular JS中控制台的错误信息。我已经编写了这段代码来匹配密码。它在控制台上抛出错误,但它工作正常。它有线。我无法从这些控制台消息中理解任何内容。任何人都可以请指出我为什么在控制台上收到错误消息。
var sampleApp = angular.module("sampleApp",[]);
sampleApp.controller('sampleCtrl', ['$scope', function($scope){
}]);
sampleApp.directive('pwCheck', [function(){
// Runs during compile
return {
require: 'ngModel', // Array = multiple requires, ? = optional, ^ = check parent elements
link: function($scope, iElm, iAttrs, controller) {
var password1 = iAttrs.ngModel;
var password2 = iAttrs.pwCheck;
$scope.$watch('[password1, password2]', function(newValue, oldValue){
controller.$setValidity('pwmatch', $scope[password1] === $scope[password2] );
});
}
};
}]);

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<html ng-app="sampleApp">
<head>
</head>
<body ng-controller="sampleCtrl">
<form name="myForm">
<label for="pw1">Set a password:</label><br />
<input type="password" id="pw1" name="pw1" ng-model="pw1" /><br />
<label for="pw2">Confirm the password:</label><br />
<input type="password" id="pw2" name="pw2" ng-model="pw2" pw-check="pw1" />
<div class="msg-block" ng-show="myForm.$error">
<span class="msg-error" ng-show="myForm.pw2.$error.pwmatch">Passwords don't match.</span>
</div>
</form>
</body>
</html>
&#13;
是否有任何简单的方法/工具来调试Angular JS代码,因为我在理解控制台错误消息时面临很多困难。 控制台截图:
答案 0 :(得分:0)
我发现chrome扩展Angular Batarang非常适合调试Angular JS:
https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk?hl=en
它在开发人员工具中添加了另一个选项卡,允许您检查应用程序等。
希望它有所帮助。
答案 1 :(得分:0)
如果文件中的错误超过了角度,则会在第1行错误中给出问题代码的位置(最后2位数)。以下行是调用堆栈。如果您在角度代码中导致的错误比第一行是指向描述错误的角度站点的链接。
https://docs.angularjs.org/error/$rootScope/infdig - 这是你的错误。你以某种方式在摘要周期中造成无限循环。
编辑:正如JanR建议使用Chrome与Batarang一样,它更适合角度