Javascript 如何为特定元素实现ng类?
我使用ng repeat来重复基于我正在提取的一些数据的相同svg图形。我想使用ng类向SVG的特定路径添加一个“活动”类。我为每个路径指定了一个ng类属性:Javascript 如何为特定元素实现ng类?,javascript,angularjs,Javascript,Angularjs,我使用ng repeat来重复基于我正在提取的一些数据的相同svg图形。我想使用ng类向SVG的特定路径添加一个“活动”类。我为每个路径指定了一个ng类属性: ng-class="{active: shouldRingFillsBeActive}" 在我的javascript中,我使用类“ring fill”遍历所有路径,并将它们放入一个名为“rings”的数组中。现在我只想将某些路径指定为类“active”。如果我将$scope.shouldRingFillsBeActive设置为true,
ng-class="{active: shouldRingFillsBeActive}"
在我的javascript中,我使用类“ring fill”遍历所有路径,并将它们放入一个名为“rings”的数组中。现在我只想将某些路径指定为类“active”。如果我将$scope.shouldRingFillsBeActive设置为true,则所有环都将具有活动类。例如:如果环[3]需要“active”类,我如何才能使ng类仅针对该元素为真
现在我正在使用attr,但它不起作用,因为视图还没有加载。现在我将使用$scope
以下是我的javascript:
for(var i in data) {
var dataObject = data[i];
var team = dataObject.team;
var ringToHighlight = Math.floor((dataObject.average_score/maxScore)*totalRings); //round down
var i = 0;
var rings = [];
var ringClass = 'path[data="overall"].ring-fill.'+team+':not(.ring-border)';
var ring = $(ringClass);
console.log(ring);
ring.each(function(){
rings.push($(this)[0]);
});
rings.reverse();
while( i < ringToHighlight) {
fillPath(i);
i = i + 1;
}
}
function fillPath(i) {
if(i < ringToHighlight) {
$scope.shouldRingFillsBeActive = true;
var selectedRing = $(rings[i]);
selectedRing.attr("class", "ring-fill active");
}
}
for(数据中的变量i){
var dataObject=数据[i];
var team=dataObject.team;
var ringToHighlight=Math.floor((dataObject.average_score/maxScore)*totalRings);//向下取整
var i=0;
var环=[];
var ringClass='path[data=“total”].ring fill.+team+':非(.ring border);
变量环=$(环类);
控制台日志(环);
ring.each(函数(){
环。推($(此)[0]);
});
环。反向();
while(i
看起来您已经在使用selectedRing.attr(“class”,“ring fill active”)
,如果您只是删除ng类
,我猜它会起作用。然而,我想补充一点,我希望这是在指令中完成的,而不是在控制器中完成的?@Sonaryr attr不起作用,因为它在创建类“环填充”之前就查找它。这就是我想使用$scope的原因。是否有一种方法可以使所选“环填充”的$scope.shouldRingFillsBeActive=true?为什么这应该在指令中而不是控制器中?