(AngularJS)如何在没有ng重复的情况下随机排列div中的孩子

(AngularJS)如何在没有ng重复的情况下随机排列div中的孩子,angularjs,random,flexbox,ng-style,Angularjs,Random,Flexbox,Ng Style,我正在制作一个基本的琐事应用程序,我从客户机收到的JSON数据不允许我重复琐事页面上的选择。我有六个静态元素,它们显示基于前几页过滤数据的选择(类别选择等)。如果不随机排列这些元素,则获胜的选择始终位于同一位置 我想在CSS中使用Flexbox的“order”属性来实现这一点。我想生成介于1和6之间的随机数,然后将它们分配给每个选项。我认为ng风格将是我的朋友,我可以简单地为每个选项调用一个函数,它将吐出一个介于1和6之间的随机数,并将CSS order属性分配给该随机数 我已经能够对每个选项调

我正在制作一个基本的琐事应用程序,我从客户机收到的JSON数据不允许我重复琐事页面上的选择。我有六个静态元素,它们显示基于前几页过滤数据的选择(类别选择等)。如果不随机排列这些元素,则获胜的选择始终位于同一位置

我想在CSS中使用Flexbox的“order”属性来实现这一点。我想生成介于1和6之间的随机数,然后将它们分配给每个选项。我认为ng风格将是我的朋友,我可以简单地为每个选项调用一个函数,它将吐出一个介于1和6之间的随机数,并将CSS order属性分配给该随机数

我已经能够对每个选项调用一个函数,但它为每个元素指定相同的“随机”数,这是没有帮助的。我基本上想做如下的事情,但它会抛出无限摘要循环错误或“a.replace不是函数”错误

如果有人能帮我,我会非常高兴。谢谢

AngularJS:

    $scope.randomOrder = function(){
        $scope.randomNum = Math.floor(Math.random() * 6) + 1;
        return{
            "order": $scope.randomNum
        }
    }
<div ng-style="randomOrder()"></div>
HTML:

    $scope.randomOrder = function(){
        $scope.randomNum = Math.floor(Math.random() * 6) + 1;
        return{
            "order": $scope.randomNum
        }
    }
<div ng-style="randomOrder()"></div>

像往常一样过度思考

我能够使用简单的旧JS实现这一点。我认为我遇到的一个问题是,在加载DOM中的元素之前调用了randomize函数,因此我设置了一个超时,现在它似乎工作正常

$scope.randomize = function () {
    var parent = $(".container");
    var divs = parent.children();
    while (divs.length) {
        parent.append(divs.splice(Math.floor(Math.random() * divs.length), 1)[0]);
    }
};
$timeout(function() {
    $scope.randomize();
}, 0);