我打开了FireFox开发人员工具,调试器在处理表单输入的函数中的每一行都有断点。调试器指示方法的执行只是在一个特定的行中断而没有任何解释。代码正在运行,需要在每个步骤进行确认,然后突然该方法在特定行停止执行,使用户的视图处于静态状态。没有任何能力在调试器中单击“继续”或查看任何参数值,因为代码只是停止运行并退出,使用户挂起而没有响应。
我需要对下面的代码进行哪些具体更改才能使方法继续运行?如何确定问题所在以便了解代码需要处理的条件?在任意点暂停程序执行的幻象是令人不安的。如果这是Java,那么ide会告诉我问题是什么。
首先,这行代码导致了问题:
$scope.resultmessage.webleadid = $scope.wleadid;
但后来我创建了一个if测试来阻止该行被读取,结果是下一行引起了同样的问题:
$scope.resultmessage.name = $scope.uname;
以下是AngularJS控制器中的方法:
$scope.pinForm = function(isValid) {
console.log("inside pinForm")
if (isValid) {
console.log("pinForm is Valid!")
if($scope.existing !='yes'){$scope.resultmessage.webleadid = $scope.wleadid;}
$scope.resultmessage.name = $scope.uname;
$scope.resultmessage.existing = $scope.existing;
var funcJSON = $scope.resultmessage;
auth.authenticate2(funcJSON, function(authenticated2) {
if (authenticated2=='yes') {
$scope.processStep="done";
console.log(auth.authenticated2);
$location.path('/secure');
$scope.$apply();
}
});
}
};
以下是视图的代码:
<form name="pincodeForm" ng-submit="pinForm(pincodeForm.$valid)" novalidate>
One time pin code:
<input type="text" name="content" ng-model="resultmessage.content" required data-countparens="" />
<p ng-show="pincodeForm.content.$error.required && !pincodeForm.content.$pristine" class="help-block">Pin code is a required field.</p>
<button type="submit" ng-disabled="pincodeForm.$invalid" >Submit</button>
</form>
控制器代码顶部的变量声明包括以下内容,尽管某些变量的值已通过运行代码而更改:
$scope.credentials = {};
$scope.weblead = {type:"weblead", firstname: 'cuff', lastname: 'link', organization: "shirt", emailaddress: 'cuff@shirt.com'};
$scope.leadresult = "blank";
$scope.processStep = "start";
$scope.uname = "blank";
$scope.wleadid = "initial blank value";
$scope.existing = "blank";