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"
}];
}]);
嗯,等等,你的想法看起來不錯。但它不是一個隨機的方式。我的意思是,第一行將始終以這種方式的第一個顏色是正確的? –
是的,的確如此。訂單總是一樣的。爲了解決這些問題,如果你希望每次頁面加載都是隨機的,你可以在初始化數組後隨機混洗數組。 –
你能告訴我我該怎麼辦?我的意思是洗牌陣列。非常感謝!! –