检查目标断开角度

时间:2015-11-27 13:10:03

标签: javascript angularjs

我正在Angular.js做一个小测验应用程序。 我使用ng-click函数来测试我选择的答案是正确还是错误使用JSON文档。当我点击anwser并决定更改它(true为false,或false为true)时,我检查的目标已从Google Chrome中断开。

我尝试使用没有任何扩展程序的Google Chrome。

的index.html

<!DOCTYPE html>
<html ng-app="quizApp" lang="en">
<head>
    <meta charset="UTF-8">
    <title>Quiz</title>
    <link rel="stylesheet" href="css/style.css">
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-route.min.js"></script>
    <script src="app/app.js"></script>
    <script src="app/quizCtrl.js"></script>
</head>
<body>
    <div class="main">
        <div ng-view></div>
    </div>
</body>
</html>

app.js

var app = angular.module('quizApp', ['ngRoute'])

angular.module('quizApp').config(['$routeProvider', function($routeProvider) {

    var routes = [
        {
            url: '/home',
            template: 'templates/quiz.html',
            controller: 'quizCtrl'
        }
    ];

    routes.forEach(function(r, index) {
        $routeProvider.when(r.url, { templateUrl: r.template, controller: r.controller});
    });

    $routeProvider.otherwise({ redirectTo : '/home' });
}]);

quizCtrl.js

app.controller('quizCtrl', function($scope, $http) {
    $scope.responses = 
        $http({
            method : 'GET',
            url : './data/quiz.json'
        }).then(function successCallBack(data) {
            $scope.datas = data.data;
        }, function errorCallback(data) {
            console.log("Error");
        });
    $scope.result = []; 
    $scope.isTrue = function(response) {
        $scope.json = angular.fromJson(response);
        if ($scope.result.length == 0) {
            if($scope.json.isTrue) {
                        $scope.result.push($scope.json.id, true);
                    }
                    else {
                        $scope.result.push($scope.json.id, false);
                    }   
        }
        else {
            console.log($scope.result.length);
            for (var i = 0; i < $scope.result.length; i++) {
                if ($scope.result[i] == $scope.json.id) {
                    $scope.result.splice(i, 2);
                    if($scope.json.isTrue) {
                            $scope.result.push($scope.json.id, true);
                        }
                        else {
                            $scope.result.push($scope.json.id, false);
                        }
                }
                else {
                    if ($scope.result[i] == true || $scope.result[i] == false) {
                        console.log("do nothing " + i);
                    }
                    else {
                        if($scope.json.isTrue) {
                            $scope.result.push($scope.json.id, true);
                        }
                        else {
                            $scope.result.push($scope.json.id, false);
                        }   
                    }
                }
            }
        }
        console.log($scope.result);
    }
});

我相信我的代码中的错误应该在代码的这一部分中(因为它在quizCtrl.js中的第23行之后崩溃

for (var i = 0; i < $scope.result.length; i++) {
    if ($scope.result[i] == $scope.json.id) {
        $scope.result.splice(i, 2);
        if($scope.json.isTrue) {
            $scope.result.push($scope.json.id, true);
        }
        else {
            $scope.result.push($scope.json.id, false);
        }
    }
    else {
        if ($scope.result[i] == true || $scope.result[i] == false) {              
             console.log("do nothing " + i);
        }
        else {
            if($scope.json.isTrue) {
                $scope.result.push($scope.json.id, true);
            }
            else {
                $scope.result.push($scope.json.id, false);
            }   
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我认为您的具体问题是您使用$scope.result.length对结果进行迭代,然后在循环中继续推送到该数组。如果你注释掉for循环中的4行,那么它就不会破坏它。所以我认为继续进行迭代的结果数组导致问题。

This可能会对您有所帮助。

&#34;检查错误已断开连接错误&#34;当您通过浏览器开发某个网页或某些CORS请求时,您尝试访问的文件太大而无法让浏览器处理或插件干扰我们的程序(我们正在开发的程序)。

解决方案: 尝试禁用所有插件或涉及允许CORS或禁用提供相同功能的插件(例如,您可能有2-3个插件执行允许CORS可能会干扰的相同工作)。 检查您正在访问的文件(当然,只有在您开发某些Web服务,应用程序或某些Web开发时才可以检出该文件,以便该文件在本地存在)。