如何使用angularjs选择随机元素?

时间:2014-02-13 21:48:49

标签: javascript jquery angularjs

我在下面使用ng-repeat:

<div ng-repeat="quote in quotes">
        {{quote.value}}
</div>

迭代引号变量:

app.controller("MainController", function($scope){
    $scope.quotes = [
        {
            value: "q1"
        },
        {
            value: "q2"
        },

    ];
});

我想从这个引号变量中只选择一个随机元素,而不是遍历整个数组。在angualrjs中是否有指令可用于实现此目的?

2 个答案:

答案 0 :(得分:12)

您可以使用此选项:“Getting a random value from a JavaScript array获取随机值。

$scope.randomQuote = $scope.quotes[Math.floor(Math.random() * $scope.quotes.length)];

答案 1 :(得分:1)

如果找不到指令,我们可以在没有任何指令的情况下实现这一点:

以下方法将范围内的int随机化

getRandomIndex = function(){
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

所以在我们的例子中:min应该为零,max应该是数组的长度 - 1

以下是如何使用它的示例

app.controller("MainController", function($scope){
$scope.getRandomIndex = function(length){
    return Math.floor(Math.random() * length);
}
    $scope.quotes = [
        {
            value: "q1"
        },
        {
            value: "q2"
        },

    ];
});

<div ng-controller="MainController">
  <div ng-repeat="q in quotes">
        <p> {{quotes[getRandomIndex(quotes.length)].value}} </p>
  </div>
</div>