随机使用ng-repeat

时间:2017-09-18 23:42:52

标签: javascript angularjs random angularjs-ng-repeat

我试图随机生成一个列表,其中每个项目都是可点击的。

  <ul class="list-group">
    <li class="list-group-item" ng-repeat="user in users | orderBy: random" ng-class="user.value && user.color" ng-click="changeValue(user)"> {{user.name}}</li>
  </ul>

所以,点击我希望它改变项目的价值和颜色。

我已经可以使用以下函数随机生成列表:

$scope.random = function() {

  return 0.5 - Math.random();

};

我面临的问题是每当我点击一个列表项时,它们就会随机重新排列。我希望它们在开头随机显示,然后在我点击后保持完全相同的顺序。我怎样才能避免重新安排?

这是一个有实际例子的傻瓜:

DEMO

谢谢。

2 个答案:

答案 0 :(得分:2)

您好,我没有真正得到您想要使用该值属性的内容,但这将解决您的大多数问题:

<强>的index.html

   width: auto;
   z-index: 100000;
   /* Above WP toolbar. */
  }

  .sample {
       color: green;
  }

<强>的script.js

 <li class="list-group-item" ng-repeat="user in users" ng-class="user.value && user.color" ng-click="changeValue(user)"> {{user.name}}</li>

在此处查看: https://plnkr.co/edit/i9YDktypVqEl7BJ9GNEr?p=preview

答案 1 :(得分:2)

好的抱歉,我可能在第一个答案中已经过度复杂了这应该这样做 - 在html中只绑定一次:

<li class="list-group-item" ng-repeat="user in ::users | orderBy: random" ng-class="user.value && user.color" ng-click="changeValue(user)"> {{user.name}}</li>

https://plnkr.co/edit/fp3UTn7CLql3zCT9EzBU?p=preview