1
我想从ng-repeat中的每个元素中的数组中设置一个随机背景颜色。这是一个简单的提琴我做:ng-repeat为每一行设置一个随机颜色
http://jsfiddle.net/akbb6car/2/
正如你看到的,我的问题是我不能设置颜色中的每个“行”,但它在所有行同一组。我无法理解如何解决这个问题。我也尝试使用id="$index"
,但不起作用。这里有一些代码:
<div ng-app="myApp" ng-controller="dummy">
<div ng-repeat="customer in customerData" class="col-sm-3">
<div ng-init="getRandomColor()" class="contact-box" ng-style="{background: bgColor}"> {{customer.name}} got: {{customer.color}}</div>
</div>
</div>
angular.module('myApp', ['ngSanitize'])
.controller('dummy', ['$scope', function ($scope) {
$scope.doc_classes_colors = [
"#339E42",
"#039BE5",
"#EF6C00",
"#A1887F",
"#607D8B",
"#039BE5",
"#009688",
"#536DFE",
"#AB47BC",
"#E53935",
"#3F51B5"
];
$scope.bgColor = "#339E42";
$scope.getRandomColor = function() {
$scope.bgColor = $scope.doc_classes_colors[Math.floor(Math.random() * $scope.doc_classes_colors.length)];
};
$scope.customerData = [{
name: "Mike"
}, {
name: "Tom"
}, {
name: "ASD"
}, {
name: "Lol"
}];
}]);
嗯,等等,你的想法看起来不错。但它不是一个随机的方式。我的意思是,第一行将始终以这种方式的第一个颜色是正确的? –
是的,的确如此。订单总是一样的。为了解决这些问题,如果你希望每次页面加载都是随机的,你可以在初始化数组后随机混洗数组。 –
你能告诉我我该怎么办?我的意思是洗牌阵列。非常感谢!! –