我試圖在使用ng-repeat創建的一組div上設置初始背景色。我也想更新懸停時每個div的背景顏色。AngularJS動態更新ng樣式
我能夠在懸停上看到正確的顏色,但我不知道如何爲每個div設置初始背景顏色,當我有一個ng樣式的變量時。我曾嘗試循環控制器中的項目,並在我的控制器中調用rgba函數,但它只是將最後一個背景顏色應用於所有div。
這裏是我的NG-重複塊:
<section ng-controller="ProjectsCtrl" class="work">
<div ng-repeat="project in projects" class="work-example" ng-style="{'background-color': '{{ project.background_color }}'}">
<a href="#">
<div class="inner" ng-style="{'background-image': 'url({{ project.image_url }})'}">
<div class="type">{{ project.title }}</div>
<div class="client">{{ project.client }}</div>
<div class="overlay" ng-style="background" ng-mouseover="rgba(project.background_color, 0.2)"></div>
</div>
</a>
</div>
</section>
我的控制器有一個函數調用RGBA,將採取十六進制(從軌API調用來),並把它變成RGBA。
App.controller('ProjectsCtrl', ['$scope', 'Projects', function($scope, Projects) {
$scope.rgba = function(hex, opacity) {
var hex = hex.replace('#', ''),
r = parseInt(hex.substring(0,2), 16),
g = parseInt(hex.substring(2,4), 16),
b = parseInt(hex.substring(4,6), 16),
result = 'rgba('+ r + ',' + g + ',' + b + ',' + opacity + ')';
$scope.background = { 'background-color': result }
}
$scope.projects = Projects.query();
}
]);
這裏是我的控制器調用服務:
App.factory('Projects', ['$resource', function($resource) {
return $resource('/api/projects/:id', {
id: '@id'
});
}
]);
這是我試圖從控制器更新NG-風格(類型,而是將所有div的最後一個背景色):
$scope.projects = Projects.query(function(projects){
angular.forEach(projects, function(value, index) {
$scope.rgba(value.background_color, '0.8');
});
});
我對AngularJS世界很新,所以我希望所有這些都有道理。任何幫助是極大的讚賞。謝謝!
謝謝你,這正是我想要完成的。 – Zach 2014-10-08 21:01:15