Angular JS中的随机函数

时间:2016-02-29 15:25:51

标签: javascript angularjs

我有一个带有问题的json文件,所以是一个数组。我想让所有问题都是随机的。这是我在js文件中的代码,但我不知道为什么不起作用。

$http.get('quiz_data.json').then(function(quizData){
        $scope.myQuestions = quizData.data;
        $scope.myQuestions = Math.floor(Math.random()*2);
    });

并在html中

<div ng-repeat="myQuestion in myQuestions"> <p class="txt">{{myQuestion.question}}</p></div>

2 个答案:

答案 0 :(得分:5)

使用:

    $("#x").click(function(){
        $("#y").val($(this).val());
    });

并且在视野中: {{randomQuestion}}

更新:

$scope.randomQuestion= $scope.myQuestions[Math.floor(Math.random() * $scope.myQuestions.length)];  

HTML:

$http.get('quiz_data.json').then(function(quizData){
        $scope.myQuestions = quizData.data;
        $scope.randomQuestion= $scope.myQuestions[Math.floor(Math.random() * $scope.myQuestions.length)];  
    });  

最终更新:

所以,实际的问题并非随机化而是拖延问题:

在您的js文件中:

<div ng-repeat="myQuestion in myQuestions">
<p class="txt">{{randomQuestion.question}}</p></div>    

您的HTML:

function shuffleArray(array) {
    var m = array.length,
        t, i;

    // While there remain elements to shuffle
    while (m) {
        // Pick a remaining element…
        i = Math.floor(Math.random() * m--);

        // And swap it with the current element.
        t = array[m];
        array[m] = array[i];
        array[i] = t;
    }

    return array;
}

// access the http service
// quizData object = data from quiz_data.json
$http.get('quiz_data.json').then(function(quizData) {
    $scope.myQuestions = quizData.data;
    $scope.totalQuestions = $scope.myQuestions.length;
    shuffleArray($scope.myQuestions);
});  

答案 1 :(得分:1)

这一行:

text

覆盖您的问题数组并将其转换为随机数。我想你想把它作为一个数组来访问它,如下所示:

$scope.myQuestions = Math.floor(Math.random()*2);